Commit 2143287d authored by Daniel Vetter's avatar Daniel Vetter

drm/qxl: Don't take dev->struct_mutex in bo_force_delete

It really doesn't protect anything which doesn't have other locks
already. It also doesn't seem to be wired up into the driver unload
code fwiw, but that's a different issue.
Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
parent c325f88d
...@@ -272,7 +272,6 @@ void qxl_bo_force_delete(struct qxl_device *qdev) ...@@ -272,7 +272,6 @@ void qxl_bo_force_delete(struct qxl_device *qdev)
return; return;
dev_err(qdev->dev, "Userspace still has active objects !\n"); dev_err(qdev->dev, "Userspace still has active objects !\n");
list_for_each_entry_safe(bo, n, &qdev->gem.objects, list) { list_for_each_entry_safe(bo, n, &qdev->gem.objects, list) {
mutex_lock(&qdev->ddev->struct_mutex);
dev_err(qdev->dev, "%p %p %lu %lu force free\n", dev_err(qdev->dev, "%p %p %lu %lu force free\n",
&bo->gem_base, bo, (unsigned long)bo->gem_base.size, &bo->gem_base, bo, (unsigned long)bo->gem_base.size,
*((unsigned long *)&bo->gem_base.refcount)); *((unsigned long *)&bo->gem_base.refcount));
...@@ -280,8 +279,7 @@ void qxl_bo_force_delete(struct qxl_device *qdev) ...@@ -280,8 +279,7 @@ void qxl_bo_force_delete(struct qxl_device *qdev)
list_del_init(&bo->list); list_del_init(&bo->list);
mutex_unlock(&qdev->gem.mutex); mutex_unlock(&qdev->gem.mutex);
/* this should unref the ttm bo */ /* this should unref the ttm bo */
drm_gem_object_unreference(&bo->gem_base); drm_gem_object_unreference_unlocked(&bo->gem_base);
mutex_unlock(&qdev->ddev->struct_mutex);
} }
} }
......
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