summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/gpu/drm/msm/msm_gem_prime.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/gpu/drm/msm/msm_gem_prime.c')
-rw-r--r--kernel/drivers/gpu/drm/msm/msm_gem_prime.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/drivers/gpu/drm/msm/msm_gem_prime.c b/kernel/drivers/gpu/drm/msm/msm_gem_prime.c
index dd7a7ab60..121975b07 100644
--- a/kernel/drivers/gpu/drm/msm/msm_gem_prime.c
+++ b/kernel/drivers/gpu/drm/msm/msm_gem_prime.c
@@ -23,8 +23,12 @@
struct sg_table *msm_gem_prime_get_sg_table(struct drm_gem_object *obj)
{
struct msm_gem_object *msm_obj = to_msm_bo(obj);
- BUG_ON(!msm_obj->sgt); /* should have already pinned! */
- return msm_obj->sgt;
+ int npages = obj->size >> PAGE_SHIFT;
+
+ if (WARN_ON(!msm_obj->pages)) /* should have already pinned! */
+ return NULL;
+
+ return drm_prime_pages_to_sg(msm_obj->pages, npages);
}
void *msm_gem_prime_vmap(struct drm_gem_object *obj)
@@ -41,9 +45,7 @@ int msm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
{
int ret;
- mutex_lock(&obj->dev->struct_mutex);
ret = drm_gem_mmap_obj(obj, obj->size, vma);
- mutex_unlock(&obj->dev->struct_mutex);
if (ret < 0)
return ret;