diff options
-rw-r--r-- | drivers/gpu/drm/msm/msm_gem.c | 6 |
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 | ||