aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajesh Borundia <rajesh.borundia@qlogic.com>2014-01-28 11:55:29 -0500
committerDavid S. Miller <davem@davemloft.net>2014-01-28 14:59:30 -0500
commit060d0564a9152f210183aebad41c41794e18f419 (patch)
tree798f7294a183484b4ee4c6e225630956008e6aed
parentbcf6cb1aa415055749d855eead774896141eb5d8 (diff)
qlcnic: Fix tx timeout.
o __qlcnic_down call's netif_tx_disable which in turn stops all the TX queues, corresponding start queue was missing in __qlcnic_up which was leading to tx timeout. o The commit b84caae486135d588fb200973b0be8cb8a511edf (qlcnic: Fix usage of netif_tx_{wake, stop} api during link change.) exposed this issue. Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 1f79d47c45fa..ba78c7481fa3 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -1837,6 +1837,7 @@ int __qlcnic_up(struct qlcnic_adapter *adapter, struct net_device *netdev)
1837 qlcnic_linkevent_request(adapter, 1); 1837 qlcnic_linkevent_request(adapter, 1);
1838 1838
1839 adapter->ahw->reset_context = 0; 1839 adapter->ahw->reset_context = 0;
1840 netif_tx_start_all_queues(netdev);
1840 return 0; 1841 return 0;
1841} 1842}
1842 1843
@@ -2704,14 +2705,8 @@ static int qlcnic_open(struct net_device *netdev)
2704 2705
2705 err = __qlcnic_up(adapter, netdev); 2706 err = __qlcnic_up(adapter, netdev);
2706 if (err) 2707 if (err)
2707 goto err_out; 2708 qlcnic_detach(adapter);
2708
2709 netif_tx_start_all_queues(netdev);
2710
2711 return 0;
2712 2709
2713err_out:
2714 qlcnic_detach(adapter);
2715 return err; 2710 return err;
2716} 2711}
2717 2712