aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrygorii Strashko <grygorii.strashko@ti.com>2017-03-31 19:41:23 -0400
committerDavid S. Miller <davem@davemloft.net>2017-04-02 22:42:44 -0400
commit75514b6654859e0130b512396dc964d2a9e84967 (patch)
tree85886bc2ed8ab11f1c27ba05ad0280b0dbe7326e
parente5c1e5198068ed896a8a80b8ed9e202bbab18851 (diff)
net: ethernet: ti: cpsw: wake tx queues on ndo_tx_timeout
In case, if TX watchdog is fired some or all netdev TX queues will be stopped and as part of recovery it is required not only to drain and reinitailize CPSW TX channeles, but also wake up stoppted TX queues what doesn't happen now and netdevice will stop transmiting data until reopenned. Hence, add netif_tx_wake_all_queues() call in .ndo_tx_timeout() to complete recovery and restore TX path. Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/ti/cpsw.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 9f3d9c67e3fe..58cdc066ef2c 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -1817,6 +1817,8 @@ static void cpsw_ndo_tx_timeout(struct net_device *ndev)
1817 } 1817 }
1818 1818
1819 cpsw_intr_enable(cpsw); 1819 cpsw_intr_enable(cpsw);
1820 netif_trans_update(ndev);
1821 netif_tx_wake_all_queues(ndev);
1820} 1822}
1821 1823
1822static int cpsw_ndo_set_mac_address(struct net_device *ndev, void *p) 1824static int cpsw_ndo_set_mac_address(struct net_device *ndev, void *p)