Commit ab699ec6 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau: drop drm_global_mutex before sleeping in submission path

If we keep hold of the mutex here, the process which currently holds the
buffer object will never be able to release it, causing a deadlock.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent e3461a2b
...@@ -337,7 +337,9 @@ validate_init(struct nouveau_channel *chan, struct drm_file *file_priv, ...@@ -337,7 +337,9 @@ validate_init(struct nouveau_channel *chan, struct drm_file *file_priv,
return -EINVAL; return -EINVAL;
} }
mutex_unlock(&drm_global_mutex);
ret = ttm_bo_wait_cpu(&nvbo->bo, false); ret = ttm_bo_wait_cpu(&nvbo->bo, false);
mutex_lock(&drm_global_mutex);
if (ret) { if (ret) {
NV_ERROR(dev, "fail wait_cpu\n"); NV_ERROR(dev, "fail wait_cpu\n");
return ret; return ret;
......
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