]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - drivers/gpu/drm/mediatek/mtk_drm_gem.c
Merge tag 'mm-stable-2023-02-20-13-37' of git://git.kernel.org/pub/scm/linux/kernel...
[thirdparty/linux.git] / drivers / gpu / drm / mediatek / mtk_drm_gem.c
index 28659514bf205477070228c8421c74c2189316d0..a25b28d3ee9029b26f5f7fce4de1f8fbd44e2444 100644 (file)
 
 static int mtk_drm_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
 
+static const struct vm_operations_struct vm_ops = {
+       .open = drm_gem_vm_open,
+       .close = drm_gem_vm_close,
+};
+
 static const struct drm_gem_object_funcs mtk_drm_gem_object_funcs = {
        .free = mtk_drm_gem_free_object,
        .get_sg_table = mtk_gem_prime_get_sg_table,
        .vmap = mtk_drm_gem_prime_vmap,
        .vunmap = mtk_drm_gem_prime_vunmap,
        .mmap = mtk_drm_gem_object_mmap,
-       .vm_ops = &drm_gem_dma_vm_ops,
+       .vm_ops = &vm_ops,
 };
 
 static struct mtk_drm_gem_obj *mtk_drm_gem_init(struct drm_device *dev,
@@ -164,8 +169,6 @@ static int mtk_drm_gem_object_mmap(struct drm_gem_object *obj,
 
        ret = dma_mmap_attrs(priv->dma_dev, vma, mtk_gem->cookie,
                             mtk_gem->dma_addr, obj->size, mtk_gem->dma_attrs);
-       if (ret)
-               drm_gem_vm_close(vma);
 
        return ret;
 }
@@ -262,6 +265,6 @@ void mtk_drm_gem_prime_vunmap(struct drm_gem_object *obj,
                return;
 
        vunmap(vaddr);
-       mtk_gem->kvaddr = 0;
+       mtk_gem->kvaddr = NULL;
        kfree(mtk_gem->pages);
 }