aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/msm/msm_gem.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
index 68e509b3b9e4..50289a23baf8 100644
--- a/drivers/gpu/drm/msm/msm_gem.c
+++ b/drivers/gpu/drm/msm/msm_gem.c
@@ -758,6 +758,8 @@ static int msm_gem_new_impl(struct drm_device *dev,
758 struct msm_gem_object *msm_obj; 758 struct msm_gem_object *msm_obj;
759 bool use_vram = false; 759 bool use_vram = false;
760 760
761 WARN_ON(!mutex_is_locked(&dev->struct_mutex));
762
761 switch (flags & MSM_BO_CACHE_MASK) { 763 switch (flags & MSM_BO_CACHE_MASK) {
762 case MSM_BO_UNCACHED: 764 case MSM_BO_UNCACHED:
763 case MSM_BO_CACHED: 765 case MSM_BO_CACHED:
@@ -853,7 +855,11 @@ struct drm_gem_object *msm_gem_import(struct drm_device *dev,
853 855
854 size = PAGE_ALIGN(dmabuf->size); 856 size = PAGE_ALIGN(dmabuf->size);
855 857
858 /* Take mutex so we can modify the inactive list in msm_gem_new_impl */
859 mutex_lock(&dev->struct_mutex);
856 ret = msm_gem_new_impl(dev, size, MSM_BO_WC, dmabuf->resv, &obj); 860 ret = msm_gem_new_impl(dev, size, MSM_BO_WC, dmabuf->resv, &obj);
861 mutex_unlock(&dev->struct_mutex);
862
857 if (ret) 863 if (ret)
858 goto fail; 864 goto fail;
859 865