Commit 4c18442e authored by Alexey Khoroshilov's avatar Alexey Khoroshilov Committed by Oded Gabbay

drm/radeon: do not leave queue acquired if timeout happens in kgd_hqd_destroy()

If timeout happens, kgd_hqd_destroy() just returns -ETIME leaving queue
acquired.
It may cause a deadlock, so the patch proposes to release queue before return.

Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
parent 030e416b
...@@ -568,6 +568,7 @@ static int kgd_hqd_destroy(struct kgd_dev *kgd, uint32_t reset_type, ...@@ -568,6 +568,7 @@ static int kgd_hqd_destroy(struct kgd_dev *kgd, uint32_t reset_type,
if (timeout == 0) { if (timeout == 0) {
pr_err("kfd: cp queue preemption time out (%dms)\n", pr_err("kfd: cp queue preemption time out (%dms)\n",
temp); temp);
release_queue(kgd);
return -ETIME; return -ETIME;
} }
msleep(20); msleep(20);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment