[PATCH] net: lan743x: disconnect the PHY when PTP setup fails
From: Wentao Liang
Date: Tue Nov 03 2026 - 06:11:11 EST
lan743x_netdev_open() connects the PHY before opening PTP, but if
lan743x_ptp_open() fails it jumps to close_mac, which skips
lan743x_phylink_disconnect(). The reference taken by
phylink_connect_phy() is then never released, and the PHY stays
attached to the phylink instance.
Add a close_phylink label in front of the phylink disconnect, as the
pre-phylink conversion code did with close_phy, and use it on the
lan743x_ptp_open() failure path.
Fixes: a5f199a8d8a0 ("net: lan743x: Migrate phylib to phylink")
Cc: stable@xxxxxxxxxxxxxxx
Assisted-by: DeepSeek-V4.1-Flash and OpenAI Codex
Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
---
drivers/net/ethernet/microchip/lan743x_main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c
index 82d3ec20ba25..390aec639c71 100644
--- a/drivers/net/ethernet/microchip/lan743x_main.c
+++ b/drivers/net/ethernet/microchip/lan743x_main.c
@@ -3331,7 +3331,7 @@ static int lan743x_netdev_open(struct net_device *netdev)
ret = lan743x_ptp_open(adapter);
if (ret)
- goto close_mac;
+ goto close_phylink;
lan743x_rfe_open(adapter);
@@ -3374,6 +3374,8 @@ static int lan743x_netdev_open(struct net_device *netdev)
lan743x_rx_close(&adapter->rx[index]);
}
lan743x_ptp_close(adapter);
+
+close_phylink:
if (adapter->phylink)
lan743x_phylink_disconnect(adapter);
--
2.34.1