]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-4.14/net-sfp-move-sfp_register_socket-call-from-sfp_remov.patch
Linux 4.9.169
[thirdparty/kernel/stable-queue.git] / queue-4.14 / net-sfp-move-sfp_register_socket-call-from-sfp_remov.patch
1 From 5193f75bdc2f151eb6e488c171f30719fec00e74 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <marek.behun@nic.cz>
3 Date: Fri, 5 Apr 2019 11:07:58 +0200
4 Subject: net: sfp: move sfp_register_socket call from sfp_remove to sfp_probe
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 Commit c4ba68b8691e4 backported from upstream to 4.14 stable was
10 probably applied wrongly, and instead of calling sfp_register_socket in
11 sfp_probe, the socket registering code was put into sfp_remove. This is
12 obviously wrong.
13
14 The commit first appeared in 4.14.104. Fix it for the next 4.14 release.
15
16 Fixes: c4ba68b8691e4 ("net: sfp: do not probe SFP module before we're attached")
17 Cc: stable <stable@vger.kernel.org>
18 Cc: Russell King <rmk+kernel@armlinux.org.uk>
19 Cc: David S. Miller <davem@davemloft.net>
20 Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
21 Cc: Sasha Levin <sashal@kernel.org>
22 Signed-off-by: Marek BehĂșn <marek.behun@nic.cz>
23 Signed-off-by: Sasha Levin <sashal@kernel.org>
24 ---
25 drivers/net/phy/sfp.c | 8 ++++----
26 1 file changed, 4 insertions(+), 4 deletions(-)
27
28 diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
29 index a1b68b19d912..5ab725a571a8 100644
30 --- a/drivers/net/phy/sfp.c
31 +++ b/drivers/net/phy/sfp.c
32 @@ -878,6 +878,10 @@ static int sfp_probe(struct platform_device *pdev)
33 if (poll)
34 mod_delayed_work(system_wq, &sfp->poll, poll_jiffies);
35
36 + sfp->sfp_bus = sfp_register_socket(sfp->dev, sfp, &sfp_module_ops);
37 + if (!sfp->sfp_bus)
38 + return -ENOMEM;
39 +
40 return 0;
41 }
42
43 @@ -887,10 +891,6 @@ static int sfp_remove(struct platform_device *pdev)
44
45 sfp_unregister_socket(sfp->sfp_bus);
46
47 - sfp->sfp_bus = sfp_register_socket(sfp->dev, sfp, &sfp_module_ops);
48 - if (!sfp->sfp_bus)
49 - return -ENOMEM;
50 -
51 return 0;
52 }
53
54 --
55 2.19.1
56