aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2017-07-10 03:20:42 -0400
committerRob Clark <robdclark@gmail.com>2017-08-01 16:24:21 -0400
commit71e3dfa167b105d3c06e76fee1d0e2fd1e502cf6 (patch)
treec0e7f566aeeebed7690ff08582a6b7466ba5f166
parent65e93108891e571f177c202add9288eda9ac4100 (diff)
drm/msm: unlock on error in msm_gem_get_iova()
We recently added locking to this function but there was a direct return that was overlooked where we need to unlock. Fixes: 0e08270a1f01 ("drm/msm: Separate locking of buffer resources from struct_mutex") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Rob Clark <robdclark@gmail.com>
-rw-r--r--drivers/gpu/drm/msm/msm_gem.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
index 65f35544c1ec..065d933df2c3 100644
--- a/drivers/gpu/drm/msm/msm_gem.c
+++ b/drivers/gpu/drm/msm/msm_gem.c
@@ -383,8 +383,10 @@ int msm_gem_get_iova(struct drm_gem_object *obj,
383 struct page **pages; 383 struct page **pages;
384 384
385 vma = add_vma(obj, aspace); 385 vma = add_vma(obj, aspace);
386 if (IS_ERR(vma)) 386 if (IS_ERR(vma)) {
387 return PTR_ERR(vma); 387 ret = PTR_ERR(vma);
388 goto unlock;
389 }
388 390
389 pages = get_pages(obj); 391 pages = get_pages(obj);
390 if (IS_ERR(pages)) { 392 if (IS_ERR(pages)) {
@@ -405,7 +407,7 @@ int msm_gem_get_iova(struct drm_gem_object *obj,
405 407
406fail: 408fail:
407 del_vma(vma); 409 del_vma(vma);
408 410unlock:
409 mutex_unlock(&msm_obj->lock); 411 mutex_unlock(&msm_obj->lock);
410 return ret; 412 return ret;
411} 413}