From b8a6e7e1b765798b9bfb2f61c215eb9ba17d1923 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Date: Tue, 21 Oct 2014 11:52:25 +0200 Subject: [PATCH] drm/radeon: fix vm lock in radeon_gem_va_update_vm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without the lock we might corrupt the BO lists. Signed-off-by: Christian König --- drivers/gpu/drm/radeon/radeon_gem.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index 0002575..49d56b5 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c @@ -559,12 +559,16 @@ static void radeon_gem_va_update_vm(struct radeon_device *rdev, goto error_unreserve; } + mutex_lock(&bo_va->vm->mutex); r = radeon_vm_clear_freed(rdev, bo_va->vm); if (r) - goto error_unreserve; + goto error_unlock; r = radeon_vm_bo_update(rdev, bo_va, &bo_va->bo->tbo.mem); +error_unlock: + mutex_unlock(&bo_va->vm->mutex); + error_unreserve: ttm_eu_backoff_reservation(&ticket, &list); -- 1.9.1