]>
Commit | Line | Data |
---|---|---|
37554d48 SL |
1 | From f913a49caad0524831661c272fe44b70a22e251b Mon Sep 17 00:00:00 2001 |
2 | From: Mika Westerberg <mika.westerberg@linux.intel.com> | |
3 | Date: Fri, 28 Sep 2018 12:21:17 +0300 | |
4 | Subject: net: thunderbolt: Unregister ThunderboltIP protocol handler when | |
5 | suspending | |
6 | ||
7 | [ Upstream commit 9872760eb7b1d4f6066ad8b560714a5d0a728fdb ] | |
8 | ||
9 | The XDomain protocol messages may start as soon as Thunderbolt control | |
10 | channel is started. This means that if the other host starts sending | |
11 | ThunderboltIP packets early enough they will be passed to the network | |
12 | driver which then gets confused because its resume hook is not called | |
13 | yet. | |
14 | ||
15 | Fix this by unregistering the ThunderboltIP protocol handler when | |
16 | suspending and registering it back on resume. | |
17 | ||
18 | Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> | |
19 | Acked-by: David S. Miller <davem@davemloft.net> | |
20 | Signed-off-by: Sasha Levin <sashal@kernel.org> | |
21 | --- | |
22 | drivers/net/thunderbolt.c | 3 +++ | |
23 | 1 file changed, 3 insertions(+) | |
24 | ||
25 | diff --git a/drivers/net/thunderbolt.c b/drivers/net/thunderbolt.c | |
26 | index e0d6760f3219..4b5af2413970 100644 | |
27 | --- a/drivers/net/thunderbolt.c | |
28 | +++ b/drivers/net/thunderbolt.c | |
29 | @@ -1285,6 +1285,7 @@ static int __maybe_unused tbnet_suspend(struct device *dev) | |
30 | tbnet_tear_down(net, true); | |
31 | } | |
32 | ||
33 | + tb_unregister_protocol_handler(&net->handler); | |
34 | return 0; | |
35 | } | |
36 | ||
37 | @@ -1293,6 +1294,8 @@ static int __maybe_unused tbnet_resume(struct device *dev) | |
38 | struct tb_service *svc = tb_to_service(dev); | |
39 | struct tbnet *net = tb_service_get_drvdata(svc); | |
40 | ||
41 | + tb_register_protocol_handler(&net->handler); | |
42 | + | |
43 | netif_carrier_off(net->dev); | |
44 | if (netif_running(net->dev)) { | |
45 | netif_device_attach(net->dev); | |
46 | -- | |
47 | 2.20.1 | |
48 |