2020-02-23 12:20:11 +00:00
|
|
|
From 5eb0df5023c6ae8a71a7848fd5e1f788d86e51ae Mon Sep 17 00:00:00 2001
|
|
|
|
From: Russell King <rmk+kernel@armlinux.org.uk>
|
|
|
|
Date: Tue, 3 Dec 2019 18:46:04 +0000
|
|
|
|
Subject: [PATCH] net: sfp: fix hwmon
|
|
|
|
|
|
|
|
The referenced commit below allowed more than one hwmon device to be
|
|
|
|
created per SFP, which is definitely not what we want. Avoid this by
|
|
|
|
only creating the hwmon device just as we transition to WAITDEV state.
|
|
|
|
|
|
|
|
Fixes: 139d3a212a1f ("net: sfp: allow modules with slow diagnostics to probe")
|
|
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
|
|
---
|
|
|
|
drivers/net/phy/sfp.c | 13 ++++---------
|
|
|
|
1 file changed, 4 insertions(+), 9 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/net/phy/sfp.c
|
|
|
|
+++ b/drivers/net/phy/sfp.c
|
2019-11-25 15:08:31 +00:00
|
|
|
@@ -1796,6 +1796,10 @@ static void sfp_sm_module(struct sfp *sf
|
2020-02-23 12:20:11 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
+ err = sfp_hwmon_insert(sfp);
|
|
|
|
+ if (err)
|
|
|
|
+ dev_warn(sfp->dev, "hwmon probe failed: %d\n", err);
|
|
|
|
+
|
|
|
|
sfp_sm_mod_next(sfp, SFP_MOD_WAITDEV, 0);
|
|
|
|
/* fall through */
|
|
|
|
case SFP_MOD_WAITDEV:
|
2019-11-25 15:08:31 +00:00
|
|
|
@@ -1845,15 +1849,6 @@ static void sfp_sm_module(struct sfp *sf
|
2020-02-23 12:20:11 +00:00
|
|
|
case SFP_MOD_ERROR:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
-
|
|
|
|
-#if IS_ENABLED(CONFIG_HWMON)
|
|
|
|
- if (sfp->sm_mod_state >= SFP_MOD_WAITDEV &&
|
|
|
|
- IS_ERR_OR_NULL(sfp->hwmon_dev)) {
|
|
|
|
- err = sfp_hwmon_insert(sfp);
|
|
|
|
- if (err)
|
|
|
|
- dev_warn(sfp->dev, "hwmon probe failed: %d\n", err);
|
|
|
|
- }
|
|
|
|
-#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
static void sfp_sm_main(struct sfp *sfp, unsigned int event)
|