]> Gentwo Git Trees - linux/.git/commitdiff
drm/xe: Fix memory leak when handling pagefault vma
authorMika Kuoppala <mika.kuoppala@linux.intel.com>
Thu, 20 Nov 2025 16:14:35 +0000 (18:14 +0200)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Mon, 1 Dec 2025 09:15:57 +0000 (10:15 +0100)
When the pagefault handling code was moved to a new file, an extra
drm_exec_init() was added to the VMA path. This call is unnecessary because
xe_validation_ctx_init() already performs a drm_exec_init(), resulting in a
memory leak reported by kmemleak.

Remove the redundant drm_exec_init() from the VMA pagefault handling code.

Fixes: fb544b844508 ("drm/xe: Implement xe_pagefault_queue_work")
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Stuart Summers <stuart.summers@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: intel-xe@lists.freedesktop.org
Cc: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20251120161435.3674556-1-mika.kuoppala@linux.intel.com
(cherry picked from commit 62519b77aecad22b525eda482660ffa127e7ad80)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
drivers/gpu/drm/xe/xe_pagefault.c

index fe3e4014501291468d3a4c84fa4bcbd7dd705e1b..afb06598b6e1ab1ec0e550270c98f6c67c8cd824 100644 (file)
@@ -102,7 +102,6 @@ static int xe_pagefault_handle_vma(struct xe_gt *gt, struct xe_vma *vma,
 
        /* Lock VM and BOs dma-resv */
        xe_validation_ctx_init(&ctx, &vm->xe->val, &exec, (struct xe_val_flags) {});
-       drm_exec_init(&exec, 0, 0);
        drm_exec_until_all_locked(&exec) {
                err = xe_pagefault_begin(&exec, vma, tile->mem.vram,
                                         needs_vram == 1);