Re: [PATCH net] net: rtsn: fix mdio_node leak in rtsn_mdio_alloc()
From: Geert Uytterhoeven
Date: Tue May 05 2026 - 03:45:03 EST
Hi Shitalkumar,
On Mon, 4 May 2026 at 22:05, Shitalkumar Gandhi
<shital.gandhi45@xxxxxxxxx> wrote:
> of_get_child_by_name() takes a reference. The rtsn_reset() and
> rtsn_change_mode() failure paths jump to out_free_bus and leak
> mdio_node.
>
> Add out_put_node to drop it before falling through.
>
> Fixes: b0d3969d2b4d ("net: ethernet: rtsn: Add support for Renesas Ethernet-TSN")
> Signed-off-by: Shitalkumar Gandhi <shitalkumar.gandhi@xxxxxxxxxxxxxxxxxxx>
Thanks for your patch!
> --- a/drivers/net/ethernet/renesas/rtsn.c
> +++ b/drivers/net/ethernet/renesas/rtsn.c
> @@ -797,11 +797,11 @@ static int rtsn_mdio_alloc(struct rtsn_private *priv)
> /* Enter config mode before registering the MDIO bus */
> ret = rtsn_reset(priv);
> if (ret)
> - goto out_free_bus;
> + goto out_put_node;
>
> ret = rtsn_change_mode(priv, OCR_OPC_CONFIG);
> if (ret)
> - goto out_free_bus;
> + goto out_put_node;
>
> rtsn_modify(priv, MPIC, MPIC_PSMCS_MASK | MPIC_PSMHT_MASK,
> MPIC_PSMCS_DEFAULT | MPIC_PSMHT_DEFAULT);
> @@ -823,7 +823,8 @@ static int rtsn_mdio_alloc(struct rtsn_private *priv)
> priv->mii = mii;
>
> return 0;
> -
Please keep this blank line, as it serves as a clear separation between
success and failure paths.
> +out_put_node:
> + of_node_put(mdio_node);
> out_free_bus:
> mdiobus_free(mii);
> return ret;
For the logical change:
Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds