projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
030e416
)
drm/radeon: do not leave queue acquired if timeout happens in kgd_hqd_destroy()
author
Alexey Khoroshilov
<khoroshilov@ispras.ru>
Sat, 3 Jan 2015 23:31:20 +0000
(
02:31
+0300)
committer
Oded Gabbay
<oded.gabbay@amd.com>
Sat, 3 Jan 2015 23:31:20 +0000
(
02:31
+0300)
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: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Oded Gabbay <oded.gabbay@amd.com>
drivers/gpu/drm/radeon/radeon_kfd.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/radeon/radeon_kfd.c
b/drivers/gpu/drm/radeon/radeon_kfd.c
index 12c43df3d47d38b9ede1c02f0dbc824d011f45de..a55afbadc65fb1f12f5dc75a99fb910d0590ae4d 100644
(file)
--- a/
drivers/gpu/drm/radeon/radeon_kfd.c
+++ b/
drivers/gpu/drm/radeon/radeon_kfd.c
@@
-568,6
+568,7
@@
static int kgd_hqd_destroy(struct kgd_dev *kgd, uint32_t reset_type,
if (timeout == 0) {
pr_err("kfd: cp queue preemption time out (%dms)\n",
temp);
+ release_queue(kgd);
return -ETIME;
}
msleep(20);