[lvc-project] [PATCH 5.10/5.15] net: phy: clean the sfp upstream if phy probing fails
Mikhail Dmitrichenko
mdmitrichenko at astralinux.ru
Mon Nov 9 13:30:23 MSK 2026
From: Maxime Chevallier <maxime.chevallier at bootlin.com>
commit 48774e87bbaa0056819d4b52301e4692e50e3252 upstream.
Sashiko reported that we don't call sfp_bus_del_upstream() in the probe
failure path, so let's add it, otherwise the sfp-bus is left with a
dangling 'upstream' field, that may be used later on during SFP events.
This issue existed before the generic phylib sfp support, back when
drivers were calling phy_sfp_probe themselves.
Reviewed-by: Nicolai Buchwitz <nb at tipi-net.de>
Fixes: 298e54fa810e ("net: phy: add core phylib sfp support")
Signed-off-by: Maxime Chevallier <maxime.chevallier at bootlin.com>
Link: https://patch.msgid.link/20260604092819.723505-2-maxime.chevallier@bootlin.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
[mdmitrichenko: Adjust the phy_probe() error-path context: 5.10/5.15
register LED triggers only after probing succeeds.]
Signed-off-by: Mikhail Dmitrichenko <mdmitrichenko at astralinux.ru>
---
Backport fix for CVE-2026-53232
drivers/net/phy/phy_device.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 665952e64e9b0..2ba1f1833336d 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1275,6 +1275,9 @@ int phy_sfp_probe(struct phy_device *phydev,
ret = sfp_bus_add_upstream(bus, phydev, ops);
sfp_bus_put(bus);
+
+ if (ret)
+ phydev->sfp_bus = NULL;
}
return ret;
}
@@ -2903,6 +2906,9 @@ static int phy_probe(struct device *dev)
return 0;
out:
+ sfp_bus_del_upstream(phydev->sfp_bus);
+ phydev->sfp_bus = NULL;
+
/* Re-assert the reset signal on error */
phy_device_reset(phydev, 1);
--
2.43.0
More information about the lvc-project
mailing list