]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: phy: Clean the phy_ports after unregistering the downstream SFP bus
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Thu, 4 Jun 2026 09:28:17 +0000 (11:28 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 9 Jun 2026 00:43:27 +0000 (17:43 -0700)
As reported by sashiko when looking a other patches, we need to ensure
that the downstream SFP bus gets unregistered prior to destroying the
phy_ports attached to a phy_device, as the SFP code may reference these
ports. Let's make sure we follow that ordering in phy_remove().

Fixes: 589e934d2735 ("net: phy: Introduce PHY ports representation")
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Nicolai Buchwitz <nb@tipi-net.de>
Link: https://patch.msgid.link/20260604092819.723505-4-maxime.chevallier@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/phy_device.c

index 4ba8804468963415f7359526be46abe177085324..b48722589f405f650ea9dd1538608f00ac3cba33 100644 (file)
@@ -3806,11 +3806,11 @@ static int phy_remove(struct device *dev)
 
        phydev->state = PHY_DOWN;
 
-       phy_cleanup_ports(phydev);
-
        sfp_bus_del_upstream(phydev->sfp_bus);
        phydev->sfp_bus = NULL;
 
+       phy_cleanup_ports(phydev);
+
        if (phydev->drv && phydev->drv->remove)
                phydev->drv->remove(phydev);