Commit f4b7fb94 authored by Dave Airlie's avatar Dave Airlie
Browse files

drm/radeon/kms: take vram mutex pointer before derefing object.



since derefing the object might free it.

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 539d2418
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -168,13 +168,15 @@ void radeon_bo_kunmap(struct radeon_bo *bo)
void radeon_bo_unref(struct radeon_bo **bo)
{
	struct ttm_buffer_object *tbo;
	struct radeon_device *rdev;

	if ((*bo) == NULL)
		return;
	rdev = (*bo)->rdev;
	tbo = &((*bo)->tbo);
	mutex_lock(&(*bo)->rdev->vram_mutex);
	mutex_lock(&rdev->vram_mutex);
	ttm_bo_unref(&tbo);
	mutex_unlock(&(*bo)->rdev->vram_mutex);
	mutex_unlock(&rdev->vram_mutex);
	if (tbo == NULL)
		*bo = NULL;
}