aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdkfd/kfd_module.c
diff options
context:
space:
mode:
authorFelix Kuehling <Felix.Kuehling@amd.com>2018-03-23 15:30:36 -0400
committerOded Gabbay <oded.gabbay@gmail.com>2018-03-23 15:30:36 -0400
commit1679ae8f8f4148766423066aeb3dbb0a985a373a (patch)
tree8d766de21c5a0a25618ec8d5fc64fdd284b01292 /drivers/gpu/drm/amd/amdkfd/kfd_module.c
parentdrm/amdgpu: Fix acquiring VM on large-BAR systems (diff)
downloadlinux-dev-1679ae8f8f4148766423066aeb3dbb0a985a373a.tar.xz
linux-dev-1679ae8f8f4148766423066aeb3dbb0a985a373a.zip
drm/amdkfd: Use ordered workqueue to restore processes
Restoring multiple processes concurrently can lead to live-locks where each process prevents the other from validating all its BOs. v2: fix duplicate check of same variable Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_module.c')
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_module.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c
index b0acb0603883..e0c07d24d251 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c
@@ -133,7 +133,9 @@ static int __init kfd_module_init(void)
if (err < 0)
goto err_topology;
- kfd_process_create_wq();
+ err = kfd_process_create_wq();
+ if (err < 0)
+ goto err_create_wq;
kfd_debugfs_init();
@@ -143,6 +145,8 @@ static int __init kfd_module_init(void)
return 0;
+err_create_wq:
+ kfd_topology_shutdown();
err_topology:
kfd_chardev_exit();
err_ioctl: