net: thunderbolt: Unregister ThunderboltIP protocol handler when suspending
The XDomain protocol messages may start as soon as Thunderbolt control channel is started. This means that if the other host starts sending ThunderboltIP packets early enough they will be passed to the network driver which then gets confused because its resume hook is not called yet. Fix this by unregistering the ThunderboltIP protocol handler when suspending and registering it back on resume. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Acked-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fd21b79e54
commit
9872760eb7
|
@ -1282,6 +1282,7 @@ static int __maybe_unused tbnet_suspend(struct device *dev)
|
|||
tbnet_tear_down(net, true);
|
||||
}
|
||||
|
||||
tb_unregister_protocol_handler(&net->handler);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1290,6 +1291,8 @@ static int __maybe_unused tbnet_resume(struct device *dev)
|
|||
struct tb_service *svc = tb_to_service(dev);
|
||||
struct tbnet *net = tb_service_get_drvdata(svc);
|
||||
|
||||
tb_register_protocol_handler(&net->handler);
|
||||
|
||||
netif_carrier_off(net->dev);
|
||||
if (netif_running(net->dev)) {
|
||||
netif_device_attach(net->dev);
|
||||
|
|
Loading…
Reference in New Issue