kernel: sfp: add two fixes submitted to upstream
[openwrt/openwrt.git] / target / linux / generic / pending-4.19 / 755-net-sfp-fix-hwmon.patch
1 From 5eb0df5023c6ae8a71a7848fd5e1f788d86e51ae Mon Sep 17 00:00:00 2001
2 From: Russell King <rmk+kernel@armlinux.org.uk>
3 Date: Tue, 3 Dec 2019 18:46:04 +0000
4 Subject: [PATCH] net: sfp: fix hwmon
5
6 The referenced commit below allowed more than one hwmon device to be
7 created per SFP, which is definitely not what we want. Avoid this by
8 only creating the hwmon device just as we transition to WAITDEV state.
9
10 Fixes: 139d3a212a1f ("net: sfp: allow modules with slow diagnostics to probe")
11 Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
12 ---
13 drivers/net/phy/sfp.c | 13 ++++---------
14 1 file changed, 4 insertions(+), 9 deletions(-)
15
16 --- a/drivers/net/phy/sfp.c
17 +++ b/drivers/net/phy/sfp.c
18 @@ -1714,6 +1714,10 @@ static void sfp_sm_module(struct sfp *sf
19 break;
20 }
21
22 + err = sfp_hwmon_insert(sfp);
23 + if (err)
24 + dev_warn(sfp->dev, "hwmon probe failed: %d\n", err);
25 +
26 sfp_sm_mod_next(sfp, SFP_MOD_WAITDEV, 0);
27 /* fall through */
28 case SFP_MOD_WAITDEV:
29 @@ -1763,15 +1767,6 @@ static void sfp_sm_module(struct sfp *sf
30 case SFP_MOD_ERROR:
31 break;
32 }
33 -
34 -#if IS_ENABLED(CONFIG_HWMON)
35 - if (sfp->sm_mod_state >= SFP_MOD_WAITDEV &&
36 - IS_ERR_OR_NULL(sfp->hwmon_dev)) {
37 - err = sfp_hwmon_insert(sfp);
38 - if (err)
39 - dev_warn(sfp->dev, "hwmon probe failed: %d\n", err);
40 - }
41 -#endif
42 }
43
44 static void sfp_sm_main(struct sfp *sfp, unsigned int event)