diff options
author | Mark Brown <broonie@kernel.org> | 2017-08-21 19:32:58 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-08-21 19:32:58 +0100 |
commit | 6329b1bb4e691b24e51ea940b3c2cffd402bd5f8 (patch) | |
tree | 1e01171ec074d83637f3249a64c179b2147e8e4b /drivers/gpu/drm/msm/msm_gem.c | |
parent | 702992387b759828f58e52f660acb284b3069944 (diff) | |
parent | 14ccee78fc82f5512908f4424f541549a5705b89 (diff) | |
download | linux-6329b1bb4e691b24e51ea940b3c2cffd402bd5f8.tar.bz2 |
Merge tag 'v4.13-rc6' into asoc-msm8916
Linux 4.13-rc6
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.c')
-rw-r--r-- | drivers/gpu/drm/msm/msm_gem.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index 65f35544c1ec..a0c60e738db8 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, struct page **pages; vma = add_vma(obj, aspace); - if (IS_ERR(vma)) - return PTR_ERR(vma); + if (IS_ERR(vma)) { + ret = PTR_ERR(vma); + goto unlock; + } pages = get_pages(obj); if (IS_ERR(pages)) { @@ -405,7 +407,7 @@ int msm_gem_get_iova(struct drm_gem_object *obj, fail: del_vma(vma); - +unlock: mutex_unlock(&msm_obj->lock); return ret; } @@ -928,8 +930,12 @@ static struct drm_gem_object *_msm_gem_new(struct drm_device *dev, if (use_vram) { struct msm_gem_vma *vma; struct page **pages; + struct msm_gem_object *msm_obj = to_msm_bo(obj); + + mutex_lock(&msm_obj->lock); vma = add_vma(obj, NULL); + mutex_unlock(&msm_obj->lock); if (IS_ERR(vma)) { ret = PTR_ERR(vma); goto fail; |