* [PATCH net-next v4] net: phy: nxp-tja11xx: cancel registration work on remove
@ 2026-08-01 14:06 Hongyan Xu
0 siblings, 0 replies; only message in thread
From: Hongyan Xu @ 2026-08-01 14:06 UTC (permalink / raw)
To: andrew, hkallweit1, linux, davem, edumazet, kuba, pabeni
Cc: Hongyan Xu, netdev, linux-kernel, jianhao.xu
tja1102_p0_probe() schedules work to register the second port. That work
uses the Port 0 private data and phydev. The private data is
devm-allocated, but the driver does not wait for the pending work on
remove.
Store the Port 0 private data in phydev->priv and add a remove callback.
The callback cancels the registration work before devres teardown frees
the state.
This issue was found by a static analysis tool.
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Hongyan Xu <getshell@seu.edu.cn>
---
v4:
- post as a new independent thread after the required 24-hour interval
- no code changes
v3: https://lore.kernel.org/netdev/20260729155322.319-1-getshell@seu.edu.cn/
- drop the Fixes tag and target net-next instead of net
v2: https://lore.kernel.org/netdev/20260729091621.1726-1-getshell@seu.edu.cn/
v1: https://lore.kernel.org/netdev/20260728123423.781-1-getshell@seu.edu.cn/
drivers/net/phy/nxp-tja11xx.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/net/phy/nxp-tja11xx.c b/drivers/net/phy/nxp-tja11xx.c
index 07e94a247..68062a4c5 100644
--- a/drivers/net/phy/nxp-tja11xx.c
+++ b/drivers/net/phy/nxp-tja11xx.c
@@ -620,6 +620,7 @@ static int tja1102_p0_probe(struct phy_device *phydev)
return -ENOMEM;
priv->phydev = phydev;
+ phydev->priv = priv;
INIT_WORK(&priv->phy_register_work, tja1102_p1_register);
ret = tja11xx_hwmon_register(phydev, priv);
@@ -631,6 +632,13 @@ static int tja1102_p0_probe(struct phy_device *phydev)
return 0;
}
+static void tja1102_p0_remove(struct phy_device *phydev)
+{
+ struct tja11xx_priv *priv = phydev->priv;
+
+ cancel_work_sync(&priv->phy_register_work);
+}
+
static int tja1102_match_phy_device(struct phy_device *phydev, bool port0)
{
int ret;
@@ -847,6 +855,7 @@ static struct phy_driver tja11xx_driver[] = {
.features = PHY_BASIC_T1_FEATURES,
.flags = PHY_POLL_CABLE_TEST,
.probe = tja1102_p0_probe,
+ .remove = tja1102_p0_remove,
.soft_reset = tja11xx_soft_reset,
.config_aneg = tja11xx_config_aneg,
.config_init = tja11xx_config_init,
--
2.50.1.windows.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-01 14:06 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-01 14:06 [PATCH net-next v4] net: phy: nxp-tja11xx: cancel registration work on remove Hongyan Xu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.