]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
EDAC/versalnet: Fix memory leak in remove and probe error paths
authorPrasanna Kumar T S M <ptsm@linux.microsoft.com>
Sun, 22 Mar 2026 13:11:39 +0000 (06:11 -0700)
committerBorislav Petkov (AMD) <bp@alien8.de>
Sun, 22 Mar 2026 18:39:34 +0000 (19:39 +0100)
The mcdi object allocated using kzalloc() in the setup_mcdi() is not freed in
the remove path or in probe's error handling path leading to a memory leak.
Fix it by freeing the allocated memory.

Fixes: d5fe2fec6c40d ("EDAC: Add a driver for the AMD Versal NET DDR controller")
Signed-off-by: Prasanna Kumar T S M <ptsm@linux.microsoft.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260322131139.1684716-1-ptsm@linux.microsoft.com
drivers/edac/versalnet_edac.c

index 0b47ed7fed638be41602704ea69f5622ca24748b..b87fe57aa8425a66dd35dfe96f49f0c5279cbc6c 100644 (file)
@@ -937,6 +937,7 @@ static int mc_probe(struct platform_device *pdev)
 
 err_init:
        cdx_mcdi_finish(priv->mcdi);
+       kfree(priv->mcdi);
 
 err_unreg:
        unregister_rpmsg_driver(&amd_rpmsg_driver);
@@ -958,6 +959,7 @@ static void mc_remove(struct platform_device *pdev)
        remove_versalnet(priv);
        rproc_shutdown(priv->mcdi->r5_rproc);
        cdx_mcdi_finish(priv->mcdi);
+       kfree(priv->mcdi);
 }
 
 static const struct of_device_id amd_edac_match[] = {