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 <redacted>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
Changes in v2:
- Restore blank line between `return 0;` and `out_put_node:` label (Geert)
- Add Reviewed-by: Geert Uytterhoeven
Resent as a new thread (no code changes) so netdev CI picks it up
(Andrew).
Link to v1: https://lore.kernel.org/netdev/20260504200356.3529873-1-shitalkumar.gandhi@cambiumnetworks.com/
Link to v2 (mis-threaded): https://lore.kernel.org/netdev/20260505085840.352206-1-shitalkumar.gandhi@cambiumnetworks.com/
drivers/net/ethernet/renesas/rtsn.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
@@ -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)-gotoout_free_bus;+gotoout_put_node;ret=rtsn_change_mode(priv,OCR_OPC_CONFIG);if(ret)-gotoout_free_bus;+gotoout_put_node;rtsn_modify(priv,MPIC,MPIC_PSMCS_MASK|MPIC_PSMHT_MASK,MPIC_PSMCS_DEFAULT|MPIC_PSMHT_DEFAULT);
@@ -824,6 +824,8 @@ static int rtsn_mdio_alloc(struct rtsn_private *priv)return0;+out_put_node:+of_node_put(mdio_node);out_free_bus:mdiobus_free(mii);returnret;
From: Andrew Lunn <andrew@lunn.ch> Date: 2026-05-05 12:35:35
On Tue, May 05, 2026 at 06:02:36PM +0530, Shitalkumar Gandhi 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 <redacted>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Hi Shitalkumar,
Thanks for your work.
On 2026-05-05 18:02:36 +0530, Shitalkumar Gandhi 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 <redacted>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
@@ -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)-gotoout_free_bus;+gotoout_put_node;ret=rtsn_change_mode(priv,OCR_OPC_CONFIG);if(ret)-gotoout_free_bus;+gotoout_put_node;rtsn_modify(priv,MPIC,MPIC_PSMCS_MASK|MPIC_PSMHT_MASK,MPIC_PSMCS_DEFAULT|MPIC_PSMHT_DEFAULT);
@@ -824,6 +824,8 @@ static int rtsn_mdio_alloc(struct rtsn_private *priv)return0;+out_put_node:+of_node_put(mdio_node);out_free_bus:mdiobus_free(mii);returnret;
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski [off-list ref]:
On Tue, 5 May 2026 18:02:36 +0530 you 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 <redacted>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
[...]