linux/drivers/gpu/drm/scheduler
Lucas Stach a7fbb630c5 drm/scheduler: fix inconsistent locking of job_list_lock
1db8c142b6 (drm/scheduler: Add drm_sched_suspend/resume_timeout()) made
the job_list_lock IRQ safe in as the suspend/resume calls were expected to
be called from IRQ context. This usage never materialized in upstream.
Instead amdgpu started locking the job_list_lock in an IRQ unsafe way in
amdgpu_ib_preempt_mark_partial_job() and amdgpu_ib_preempt_job_recovery(),
which leads to potential deadlock if one would actually start to call the
drm_sched_suspend/resume_timeout functions from IRQ context.

As no current user needs the locking to be IRQ safe, the local IRQ
disable/enable is pure overhead. Fix the inconsistent locking by changing
all uses of job_list_lock to use the IRQ unsafe locking primitives.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2020-03-13 11:52:36 -04:00
..
gpu_scheduler_trace.h drm/sched: add run job trace 2020-03-13 11:52:36 -04:00
Makefile
sched_entity.c drm/scheduler: implement a function to modify sched list 2020-03-09 13:51:35 -04:00
sched_fence.c drm/scheduler: make unexported items static 2019-10-10 09:11:46 -05:00
sched_main.c drm/scheduler: fix inconsistent locking of job_list_lock 2020-03-13 11:52:36 -04:00