diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd')
-rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c index e5b3fb9a5ac7..b75ec379425c 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c @@ -319,7 +319,11 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm, if (retval) goto out_deallocate_hqd; + /* Temporarily release dqm lock to avoid a circular lock dependency */ + dqm_unlock(dqm); q->mqd_mem_obj = mqd_mgr->allocate_mqd(mqd_mgr->dev, &q->properties); + dqm_lock(dqm); + if (!q->mqd_mem_obj) { retval = -ENOMEM; goto out_deallocate_doorbell; |