aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2015-07-09 17:32:49 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-08-17 16:51:13 -0400
commitdb4448f78d5982997751120ca358c97a7f96e122 (patch)
tree31fe247b5064ec9a5a432c02b2f69ac66ce93c5c
parent34ddc3e9d1781a4914c673013c0eaca3ae642641 (diff)
drm/amdgpu: Don't take dev->struct_mutex in bo_force_delete
It really doesn't protect anything which doesn't have other locks already. Also this is run from driver unload code so not much need for locks anyway. Same changes as for radeon really. Cc: Alex Deucher <alexander.deucher@amd.com> Cc: "Christian König" <christian.koenig@amd.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_object.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index f1f1b6796669..57adcad2f7ba 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -466,7 +466,6 @@ void amdgpu_bo_force_delete(struct amdgpu_device *adev)
466 } 466 }
467 dev_err(adev->dev, "Userspace still has active objects !\n"); 467 dev_err(adev->dev, "Userspace still has active objects !\n");
468 list_for_each_entry_safe(bo, n, &adev->gem.objects, list) { 468 list_for_each_entry_safe(bo, n, &adev->gem.objects, list) {
469 mutex_lock(&adev->ddev->struct_mutex);
470 dev_err(adev->dev, "%p %p %lu %lu force free\n", 469 dev_err(adev->dev, "%p %p %lu %lu force free\n",
471 &bo->gem_base, bo, (unsigned long)bo->gem_base.size, 470 &bo->gem_base, bo, (unsigned long)bo->gem_base.size,
472 *((unsigned long *)&bo->gem_base.refcount)); 471 *((unsigned long *)&bo->gem_base.refcount));
@@ -474,8 +473,7 @@ void amdgpu_bo_force_delete(struct amdgpu_device *adev)
474 list_del_init(&bo->list); 473 list_del_init(&bo->list);
475 mutex_unlock(&bo->adev->gem.mutex); 474 mutex_unlock(&bo->adev->gem.mutex);
476 /* this should unref the ttm bo */ 475 /* this should unref the ttm bo */
477 drm_gem_object_unreference(&bo->gem_base); 476 drm_gem_object_unreference_unlocked(&bo->gem_base);
478 mutex_unlock(&adev->ddev->struct_mutex);
479 } 477 }
480} 478}
481 479