]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe: Fix memory leak in xe_vm_madvise_ioctl
authorVarun Gupta <varun.gupta@intel.com>
Mon, 23 Feb 2026 17:51:45 +0000 (23:21 +0530)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 4 Mar 2026 13:54:19 +0000 (08:54 -0500)
When check_bo_args_are_sane() validation fails, jump to the new
free_vmas cleanup label to properly free the allocated resources.
This ensures proper cleanup in this error path.

Fixes: 293032eec4ba ("drm/xe/bo: Update atomic_access attribute on madvise")
Cc: stable@vger.kernel.org # v6.18+
Reviewed-by: Shuicheng Lin <shuicheng.lin@intel.com>
Signed-off-by: Varun Gupta <varun.gupta@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20260223175145.1532801-1-varun.gupta@intel.com
Signed-off-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
(cherry picked from commit 29bd06faf727a4b76663e4be0f7d770e2d2a7965)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_vm_madvise.c

index 95bf53cc29e38fb8fe6631574390b9842e0b9faf..bc39a9a9790c3c835dccd1502896e85a1bf98190 100644 (file)
@@ -453,7 +453,7 @@ int xe_vm_madvise_ioctl(struct drm_device *dev, void *data, struct drm_file *fil
                                                    madvise_range.num_vmas,
                                                    args->atomic.val)) {
                                err = -EINVAL;
-                               goto madv_fini;
+                               goto free_vmas;
                        }
                }
 
@@ -490,6 +490,7 @@ int xe_vm_madvise_ioctl(struct drm_device *dev, void *data, struct drm_file *fil
 err_fini:
        if (madvise_range.has_bo_vmas)
                drm_exec_fini(&exec);
+free_vmas:
        kfree(madvise_range.vmas);
        madvise_range.vmas = NULL;
 madv_fini: