[PATCH] fix: net: mediatek: mtk_star_mdio_init: fix double of_node_put after devm_of_mdiobus_register
From: WenTao Liang
Date: Fri Jun 26 2026 - 11:23:09 EST
After devm_of_mdiobus_register succeeds, the mdio_node reference
ownership is transferred to the mii_bus device (released via
mdiobus_release on device teardown). However, the function
unconditionally calls of_node_put(mdio_node) after registration, causing
a double put.
Only call of_node_put when devm_of_mdiobus_register fails (i.e., when
ownership was not transferred). On success, the bus driver manages the
reference lifecycle.
Cc: stable@xxxxxxxxxxxxxxx
Fixes: 9ed0a3fac08b ("net: ethernet: mtk-star-emac: use devm_of_mdiobus_register()")
Signed-off-by: WenTao Liang <vulab@xxxxxxxxxxx>
---
drivers/net/ethernet/mediatek/mtk_star_emac.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/mediatek/mtk_star_emac.c b/drivers/net/ethernet/mediatek/mtk_star_emac.c
index b83886a41121..b949dd240e6b 100644
--- a/drivers/net/ethernet/mediatek/mtk_star_emac.c
+++ b/drivers/net/ethernet/mediatek/mtk_star_emac.c
@@ -1446,7 +1446,10 @@ static int mtk_star_mdio_init(struct net_device *ndev)
priv->mii->priv = priv;
ret = devm_of_mdiobus_register(dev, priv->mii, mdio_node);
+ if (ret)
+ of_node_put(mdio_node);
+ return ret;
out_put_node:
of_node_put(mdio_node);
return ret;
--
2.39.5 (Apple Git-154)