drm/radeon: Don't take dev->struct_mutex in bo_force_delete
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 9 Jul 2015 21:32:47 +0000 (23:32 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 17 Aug 2015 20:51:11 +0000 (16:51 -0400)
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.

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>
drivers/gpu/drm/radeon/radeon_object.c

index 676362769b8dbfc9dea20e8c76c02e4208950b29..d3024883b8449db854dbb93d0393ef1728ff0748 100644 (file)
@@ -419,7 +419,6 @@ void radeon_bo_force_delete(struct radeon_device *rdev)
        }
        dev_err(rdev->dev, "Userspace still has active objects !\n");
        list_for_each_entry_safe(bo, n, &rdev->gem.objects, list) {
-               mutex_lock(&rdev->ddev->struct_mutex);
                dev_err(rdev->dev, "%p %p %lu %lu force free\n",
                        &bo->gem_base, bo, (unsigned long)bo->gem_base.size,
                        *((unsigned long *)&bo->gem_base.refcount));
@@ -427,8 +426,7 @@ void radeon_bo_force_delete(struct radeon_device *rdev)
                list_del_init(&bo->list);
                mutex_unlock(&bo->rdev->gem.mutex);
                /* this should unref the ttm bo */
-               drm_gem_object_unreference(&bo->gem_base);
-               mutex_unlock(&rdev->ddev->struct_mutex);
+               drm_gem_object_unreference_unlocked(&bo->gem_base);
        }
 }