]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/xe/reg_sr: Fix leak on xa_store failure
authorShuicheng Lin <shuicheng.lin@intel.com>
Wed, 4 Feb 2026 17:28:11 +0000 (17:28 +0000)
committerSasha Levin <sashal@kernel.org>
Thu, 12 Mar 2026 11:09:54 +0000 (07:09 -0400)
[ Upstream commit 3091723785def05ebfe6a50866f87a044ae314ba ]

Free the newly allocated entry when xa_store() fails to avoid a memory
leak on the error path.

v2: use goto fail_free. (Bala)

Fixes: e5283bd4dfec ("drm/xe/reg_sr: Remove register pool")
Cc: Balasubramani Vivekanandan <balasubramani.vivekanandan@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patch.msgid.link/20260204172810.1486719-2-shuicheng.lin@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
(cherry picked from commit 6bc6fec71ac45f52db609af4e62bdb96b9f5fadb)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/xe/xe_reg_sr.c

index fc8447a838c4f98eeca7cd6f33d76d8222389cde..6b9edc7ca41158fd7ac74904bb28fc0c2ae04ae7 100644 (file)
@@ -101,10 +101,12 @@ int xe_reg_sr_add(struct xe_reg_sr *sr,
        *pentry = *e;
        ret = xa_err(xa_store(&sr->xa, idx, pentry, GFP_KERNEL));
        if (ret)
-               goto fail;
+               goto fail_free;
 
        return 0;
 
+fail_free:
+       kfree(pentry);
 fail:
        xe_gt_err(gt,
                  "discarding save-restore reg %04lx (clear: %08x, set: %08x, masked: %s, mcr: %s): ret=%d\n",