]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - drivers/gpu/drm/msm/msm_gem.c
drm/msm: Add missing put_task_struct() in debugfs path
[mirror_ubuntu-jammy-kernel.git] / drivers / gpu / drm / msm / msm_gem.c
index 22308a1b66fc3cab8cc9a847d3a4005eb37aa22d..d280dd64744de927a1f4ea3808a0f0d2b734bce3 100644 (file)
@@ -937,6 +937,7 @@ void msm_gem_describe(struct drm_gem_object *obj, struct seq_file *m,
                                        get_pid_task(aspace->pid, PIDTYPE_PID);
                                if (task) {
                                        comm = kstrdup(task->comm, GFP_KERNEL);
+                                       put_task_struct(task);
                                } else {
                                        comm = NULL;
                                }
@@ -1055,8 +1056,7 @@ static int msm_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct
 {
        struct msm_gem_object *msm_obj = to_msm_bo(obj);
 
-       vma->vm_flags &= ~VM_PFNMAP;
-       vma->vm_flags |= VM_MIXEDMAP | VM_DONTEXPAND;
+       vma->vm_flags |= VM_IO | VM_MIXEDMAP | VM_DONTEXPAND | VM_DONTDUMP;
        vma->vm_page_prot = msm_gem_pgprot(msm_obj, vm_get_page_prot(vma->vm_flags));
 
        return 0;
@@ -1132,6 +1132,7 @@ static int msm_gem_new_impl(struct drm_device *dev,
        msm_obj->flags = flags;
        msm_obj->madv = MSM_MADV_WILLNEED;
 
+       INIT_LIST_HEAD(&msm_obj->node);
        INIT_LIST_HEAD(&msm_obj->vmas);
 
        *obj = &msm_obj->base;
@@ -1166,7 +1167,7 @@ struct drm_gem_object *msm_gem_new(struct drm_device *dev, uint32_t size, uint32
 
        ret = msm_gem_new_impl(dev, size, flags, &obj);
        if (ret)
-               goto fail;
+               return ERR_PTR(ret);
 
        msm_obj = to_msm_bo(obj);
 
@@ -1250,7 +1251,7 @@ struct drm_gem_object *msm_gem_import(struct drm_device *dev,
 
        ret = msm_gem_new_impl(dev, size, MSM_BO_WC, &obj);
        if (ret)
-               goto fail;
+               return ERR_PTR(ret);
 
        drm_gem_private_object_init(dev, obj, size);