drm/amdkfd: avoid HMM change cause circular lock
authorPhilip Yang <Philip.Yang@amd.com>
Wed, 5 Dec 2018 19:03:43 +0000 (14:03 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:03:37 +0000 (15:03 -0500)
commit8dd69e69f42397c9b17764a951c44480b340858e
tree0c6fa971d37f05be80c56db04051c40cf8dccfea
parent57731a07795ae80790c6ae7d8e7001cdbd6d14c0
drm/amdkfd: avoid HMM change cause circular lock

There is circular lock between gfx and kfd path with HMM change:
lock(dqm) -> bo::reserve -> amdgpu_mn_lock

To avoid this, move init/unint_mqd() out of lock(dqm), to remove nested
locking between mmap_sem and bo::reserve. The locking order
is: bo::reserve -> amdgpu_mn_lock(p->mn)

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c