2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/drivers/gpu/drm/etnaviv
Maíra Canal 61ee19dedb
drm/etnaviv: Protect the scheduler's pending list with its lock
Commit 704d3d60fe ("drm/etnaviv: don't block scheduler when GPU is still
active") ensured that active jobs are returned to the pending list when
extending the timeout. However, it didn't use the pending list's lock to
manipulate the list, which causes a race condition as the scheduler's
workqueues are running.

Hold the lock while manipulating the scheduler's pending list to prevent
a race.

Cc: stable@vger.kernel.org
Fixes: 704d3d60fe ("drm/etnaviv: don't block scheduler when GPU is still active")
Reported-by: Philipp Stanner <phasta@kernel.org>
Closes: https://lore.kernel.org/dri-devel/964e59ba1539083ef29b06d3c78f5e2e9b138ab8.camel@mailbox.org/
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Stanner <phasta@kernel.org>
Link: https://lore.kernel.org/r/20250602132240.93314-1-mcanal@igalia.com
Signed-off-by: Maíra Canal <mcanal@igalia.com>
2025-06-16 20:18:13 -03:00
..
cmdstream.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00
common.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00
etnaviv_buffer.c drm/etnaviv: flush shader L1 cache after user commandstream 2024-10-28 16:49:09 +01:00
etnaviv_cmd_parser.c drm/etnaviv: add sensitive state for PE_RT_ADDR_4_PIPE(3, 0|1) address 2024-01-23 10:20:21 +01:00
etnaviv_cmdbuf.c drm/etnaviv: Convert timeouts to secs_to_jiffies() 2024-12-03 18:29:48 +01:00
etnaviv_cmdbuf.h
etnaviv_drv.c - cleanups 2025-01-10 10:55:06 +10:00
etnaviv_drv.h drm/etnaviv: allocate unique ID per drm_file 2023-02-07 20:49:54 +01:00
etnaviv_dump.c drm/etnaviv: switch devcoredump allocations to GFP_NOWAIT 2024-06-26 15:31:33 +02:00
etnaviv_dump.h
etnaviv_gem_prime.c drm/etnaviv: Use dma_buf from GEM object instance 2025-04-14 10:53:11 +02:00
etnaviv_gem_submit.c drm/etnaviv: Drop the <linux/pm_runtime.h> header 2024-10-28 16:30:15 +01:00
etnaviv_gem.c drm/etnaviv: Add fdinfo support for memory stats 2024-12-03 18:39:31 +01:00
etnaviv_gem.h drm/etnaviv: Drop unused data member from the etnaviv_gem_object structure 2024-12-03 18:27:33 +01:00
etnaviv_gpu.c - cleanups 2025-01-10 10:55:06 +10:00
etnaviv_gpu.h drm/etnaviv: add optional reset support 2024-12-20 19:25:51 +01:00
etnaviv_hwdb.c Revert "drm/etnaviv: Expose a few more chipspecs to userspace" 2024-04-25 16:56:20 +02:00
etnaviv_iommu_v2.c
etnaviv_iommu.c
etnaviv_mmu.c drm/etnaviv: Improve VA, PA, SIZE alignment checking 2024-12-03 18:30:32 +01:00
etnaviv_mmu.h drm/etnaviv: Drop the 'struct etnaviv_iommu_global::pta_lock' data member 2024-10-28 16:49:37 +01:00
etnaviv_perfmon.c drm/etnaviv: assert GPU lock held in perfmon pipe_*_read functions 2024-10-28 16:33:43 +01:00
etnaviv_perfmon.h
etnaviv_sched.c drm/etnaviv: Protect the scheduler's pending list with its lock 2025-06-16 20:18:13 -03:00
etnaviv_sched.h drm/etnaviv: Use scheduler dependency handling 2022-04-04 16:45:49 +02:00
Kconfig
Makefile
state_3d.xml.h
state_blt.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00
state_hi.xml.h drm/etnaviv: update hardware headers from rnndb 2024-10-28 16:34:16 +01:00
state.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00