RE: [PATCH] edac: versalnet: Fix device_node leak in mc_probe()
From: Datta, Shubhrajyoti
Date: Tue Mar 24 2026 - 08:24:17 EST
[AMD Official Use Only - AMD Internal Distribution Only]
> -----Original Message-----
> From: Borislav Petkov <bp@xxxxxxxxx>
> Sent: Sunday, March 22, 2026 10:01 PM
> To: Felix Gu <ustc.gu@xxxxxxxxx>
> Cc: Datta, Shubhrajyoti <shubhrajyoti.datta@xxxxxxx>; Tony Luck
> <tony.luck@xxxxxxxxx>; linux-edac@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] edac: versalnet: Fix device_node leak in mc_probe()
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> On Mon, Mar 23, 2026 at 12:04:08AM +0800, Felix Gu wrote:
> > of_parse_phandle() returns a device_node reference that must be
> > released with of_node_put(). The original code never freed
> > r5_core_node on any exit path, causing a memory leak.
> >
> > Fix this by using the automatic cleanup attribute __free(device_node)
> > which ensures of_node_put() is called when the variable goes out of
> > scope.
> >
> > Fixes: d5fe2fec6c40 ("EDAC: Add a driver for the AMD Versal NET DDR
> > controller")
> > Signed-off-by: Felix Gu <ustc.gu@xxxxxxxxx>
> > ---
> > drivers/edac/versalnet_edac.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/edac/versalnet_edac.c
> > b/drivers/edac/versalnet_edac.c index 0b47ed7fed63..915bcd6166f7
> > 100644
> > --- a/drivers/edac/versalnet_edac.c
> > +++ b/drivers/edac/versalnet_edac.c
> > @@ -888,12 +888,12 @@ static void remove_versalnet(struct mc_priv
> > *priv)
> >
> > static int mc_probe(struct platform_device *pdev) {
> > - struct device_node *r5_core_node;
> > struct mc_priv *priv;
> > struct rproc *rp;
> > int rc;
> >
> > - r5_core_node = of_parse_phandle(pdev->dev.of_node, "amd,rproc", 0);
> > + struct device_node *r5_core_node __free(device_node) =
> > + of_parse_phandle(pdev->dev.of_node, "amd,rproc", 0);
> > if (!r5_core_node) {
> > dev_err(&pdev->dev, "amd,rproc: invalid phandle\n");
> > return -EINVAL;
> >
> > ---
>
> Looks correct to me.
>
> @Shubhrajyoti, can you pls test it?
>
> Thx.
I tested this change on hardware and it works as expected.
Please feel free to add:
Reviewed-by: Shubhrajyoti Datta <shubhrajyoti.datta@xxxxxxx>
>
> --
> Regards/Gruss,
> Boris.
>
> https://people.kernel.org/tglx/notes-about-netiquette