realtek: sfp: prevent duplicate hwmon devices when re-probing on interface up

Re-probing on interface up will register a new duplicate hwmon device. Skip
the hwmon probe if we already have a sensor device.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Link: https://github.com/openwrt/openwrt/pull/17950
Signed-off-by: Sander Vanheule <sander@svanheule.net>
This commit is contained in:
Bjørn Mork 2025-02-04 09:05:40 +01:00 committed by Sander Vanheule
parent ef4b022150
commit 736229ba99

View File

@ -10,7 +10,18 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -2416,6 +2416,13 @@ static void sfp_sm_module(struct sfp *sf
@@ -1557,6 +1557,10 @@ static void sfp_hwmon_probe(struct work_
struct sfp *sfp = container_of(work, struct sfp, hwmon_probe.work);
int err;
+ /* Avoid duplicate hwmon devices when re-probing */
+ if (sfp->hwmon_dev)
+ return;
+
/* hwmon interface needs to access 16bit registers in atomic way to
* guarantee coherency of the diagnostic monitoring data. If it is not
* possible to guarantee coherency because EEPROM is broken in such way
@@ -2416,6 +2420,13 @@ static void sfp_sm_module(struct sfp *sf
return;
}