mirror of https://github.com/torvalds/linux.git
We forgot to disable preemption around the write_seqcount_begin/end() pair
while updating GPU stats:
[ ] WARNING: CPU: 2 PID: 12 at include/linux/seqlock.h:221 __seqprop_assert.isra.0+0x128/0x150 [v3d]
[ ] Workqueue: v3d_bin drm_sched_run_job_work [gpu_sched]
<...snip...>
[ ] Call trace:
[ ] __seqprop_assert.isra.0+0x128/0x150 [v3d]
[ ] v3d_job_start_stats.isra.0+0x90/0x218 [v3d]
[ ] v3d_bin_job_run+0x23c/0x388 [v3d]
[ ] drm_sched_run_job_work+0x520/0x6d0 [gpu_sched]
[ ] process_one_work+0x62c/0xb48
[ ] worker_thread+0x468/0x5b0
[ ] kthread+0x1c4/0x1e0
[ ] ret_from_fork+0x10/0x20
Fix it.
Cc: Maíra Canal <mcanal@igalia.com>
Cc: stable@vger.kernel.org # v6.10+
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| v3d_bo.c | ||
| v3d_debugfs.c | ||
| v3d_drv.c | ||
| v3d_drv.h | ||
| v3d_fence.c | ||
| v3d_gem.c | ||
| v3d_irq.c | ||
| v3d_mmu.c | ||
| v3d_perfmon.c | ||
| v3d_performance_counters.h | ||
| v3d_regs.h | ||
| v3d_sched.c | ||
| v3d_submit.c | ||
| v3d_sysfs.c | ||
| v3d_trace.h | ||
| v3d_trace_points.c | ||