]> git.ipfire.org Git - thirdparty/linux.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)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 4 Mar 2026 13:54:19 +0000 (08:54 -0500)
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>
drivers/gpu/drm/xe/xe_reg_sr.c

index 2e5c78940b41a925dbc2a580831d5b20c49f385f..a07be161cfa24b76f2272124bd5125816270a322 100644 (file)
@@ -98,10 +98,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",