Thread (3 messages) 3 messages, 2 authors, 25d ago

Re: [PATCH] fix: net: mediatek: mtk_star_mdio_init: fix double of_node_put after devm_of_mdiobus_register

From: WenTao Liang <hidden>
Date: 2026-06-28 04:00:35
Also in: lkml, stable

quoted hunk ↗ jump to hunk
2026年6月26日 23:20,WenTao Liang [off-list ref] 写道:

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@vger.kernel.org
Fixes: 9ed0a3fac08b ("net: ethernet: mtk-star-emac: use devm_of_mdiobus_register()")
Signed-off-by: WenTao Liang <redacted>
---
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)
Please ignore this patch. I will resend a proper version after
learning the kernel submission process.

Apologies for the noise.

Best regards,
WenTao Liang
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help