diff options
author | Daniel Vetter <[email protected]> | 2022-03-31 22:46:50 +0200 |
---|---|---|
committer | Daniel Vetter <[email protected]> | 2022-04-04 16:46:34 +0200 |
commit | b892d39199df8daa2ce6e65a111f5a15be58ae5b (patch) | |
tree | 51cc0a051b6c330a3e3414a91303227ee57028a2 | |
parent | d44c2642c40b6c11e4a0afc76d491287c074376c (diff) |
drm/sched: Check locking in drm_sched_job_add_implicit_dependencies
You really need to hold the reservation here or all kinds of funny
things can happen between grabbing the dependencies and inserting the
new fences.
v2: Fix commit summary (Christian)
Acked-by: Melissa Wen <[email protected]>
Reviewed-by: "Christian König" <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
Cc: "Christian König" <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: Luben Tuikov <[email protected]>
Cc: Andrey Grodzovsky <[email protected]>
Cc: Alex Deucher <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
-rw-r--r-- | drivers/gpu/drm/scheduler/sched_main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c index b81fceb0b8a2..c5660b066554 100644 --- a/drivers/gpu/drm/scheduler/sched_main.c +++ b/drivers/gpu/drm/scheduler/sched_main.c @@ -703,6 +703,8 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job, struct dma_fence *fence; int ret; + dma_resv_assert_held(obj->resv); + dma_resv_for_each_fence(&cursor, obj->resv, write, fence) { /* Make sure to grab an additional ref on the added fence */ dma_fence_get(fence); |