diff mbox series

[net,1/2] net: thunderbolt: Tear down connection properly on suspend

Message ID 20180212141020.78136-1-mika.westerberg@linux.intel.com
State Accepted, archived
Delegated to: David Miller
Headers show
Series [net,1/2] net: thunderbolt: Tear down connection properly on suspend | expand

Commit Message

Mika Westerberg Feb. 12, 2018, 2:10 p.m. UTC
When suspending to mem or disk the Thunderbolt controller typically goes
down as well tearing down the connection automatically. However, when
suspend to idle is used this does not happen so we need to make sure the
connection is properly disconnected before it can be re-established
during resume.

Fixes: e69b6c02b4c3 ("net: Add support for networking over Thunderbolt cable")
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: stable@vger.kernel.org
---
 drivers/net/thunderbolt.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Comments

David Miller Feb. 12, 2018, 5:03 p.m. UTC | #1
From: Mika Westerberg <mika.westerberg@linux.intel.com>
Date: Mon, 12 Feb 2018 17:10:19 +0300

> When suspending to mem or disk the Thunderbolt controller typically goes
> down as well tearing down the connection automatically. However, when
> suspend to idle is used this does not happen so we need to make sure the
> connection is properly disconnected before it can be re-established
> during resume.
> 
> Fixes: e69b6c02b4c3 ("net: Add support for networking over Thunderbolt cable")
> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>

Applied.
diff mbox series

Patch

diff --git a/drivers/net/thunderbolt.c b/drivers/net/thunderbolt.c
index ca5e375de27c..71cf9ab72fbc 100644
--- a/drivers/net/thunderbolt.c
+++ b/drivers/net/thunderbolt.c
@@ -1270,10 +1270,7 @@  static int __maybe_unused tbnet_suspend(struct device *dev)
 	stop_login(net);
 	if (netif_running(net->dev)) {
 		netif_device_detach(net->dev);
-		tb_ring_stop(net->rx_ring.ring);
-		tb_ring_stop(net->tx_ring.ring);
-		tbnet_free_buffers(&net->rx_ring);
-		tbnet_free_buffers(&net->tx_ring);
+		tbnet_tear_down(net, true);
 	}
 
 	return 0;