Stopping the rings is not enough for the core driver. It expected that the service drivers release them as well. For this reason call tbnet_stop() if the interface has been brought up upon shutdown. Signed-off-by: Mika Westerberg --- drivers/net/thunderbolt/main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/thunderbolt/main.c b/drivers/net/thunderbolt/main.c index 7aae5d915a1e..631af237998d 100644 --- a/drivers/net/thunderbolt/main.c +++ b/drivers/net/thunderbolt/main.c @@ -1417,7 +1417,10 @@ static void tbnet_remove(struct tb_service *svc) static void tbnet_shutdown(struct tb_service *svc) { - tbnet_tear_down(tb_service_get_drvdata(svc), true); + struct tbnet *net = tb_service_get_drvdata(svc); + + if (netif_running(net->dev)) + tbnet_stop(net->dev); } static int tbnet_suspend(struct device *dev) -- 2.50.1