]> xenbits.xensource.com Git - people/julieng/linux-arm.git/commitdiff
drm/mediatek: respect page offset for PRIME mmap calls
authorYongqiang Niu <yongqiang.niu@mediatek.com>
Wed, 27 Mar 2019 06:19:20 +0000 (14:19 +0800)
committerCK Hu <ck.hu@mediatek.com>
Wed, 29 May 2019 06:55:26 +0000 (14:55 +0800)
Respect page offset for PRIME mmap calls

Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
Signed-off-by: CK Hu <ck.hu@mediatek.com>
drivers/gpu/drm/mediatek/mtk_drm_gem.c

index 38483e9ee071223228e3b9bc493dc27799390411..7eabdf335a7965bde3e35454161a465e4b8bbed4 100644 (file)
@@ -144,7 +144,6 @@ static int mtk_drm_gem_object_mmap(struct drm_gem_object *obj,
         * VM_PFNMAP flag that was set by drm_gem_mmap_obj()/drm_gem_mmap().
         */
        vma->vm_flags &= ~VM_PFNMAP;
-       vma->vm_pgoff = 0;
 
        ret = dma_mmap_attrs(priv->dma_dev, vma, mtk_gem->cookie,
                             mtk_gem->dma_addr, obj->size, mtk_gem->dma_attrs);
@@ -176,6 +175,12 @@ int mtk_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
 
        obj = vma->vm_private_data;
 
+       /*
+        * Set vm_pgoff (used as a fake buffer offset by DRM) to 0 and map the
+        * whole buffer from the start.
+        */
+       vma->vm_pgoff = 0;
+
        return mtk_drm_gem_object_mmap(obj, vma);
 }