lkml.org 
[lkml]   [2019]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 01/28] net: thunderbolt: Unregister ThunderboltIP protocol handler when suspending
    Date
    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>
    ---
    drivers/net/thunderbolt.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/net/thunderbolt.c b/drivers/net/thunderbolt.c
    index c48c3a1eb1f8..fcf31335a8b6 100644
    --- a/drivers/net/thunderbolt.c
    +++ b/drivers/net/thunderbolt.c
    @@ -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);
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-02-06 14:20    [W:2.812 / U:26.504 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site