diff options
author | Rajesh Borundia <rajesh.borundia@qlogic.com> | 2014-01-28 11:55:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-28 11:59:30 -0800 |
commit | 060d0564a9152f210183aebad41c41794e18f419 (patch) | |
tree | 798f7294a183484b4ee4c6e225630956008e6aed | |
parent | bcf6cb1aa415055749d855eead774896141eb5d8 (diff) | |
download | op-kernel-dev-060d0564a9152f210183aebad41c41794e18f419.zip op-kernel-dev-060d0564a9152f210183aebad41c41794e18f419.tar.gz |
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.c | 9 |
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 1f79d47..ba78c74 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) qlcnic_linkevent_request(adapter, 1); adapter->ahw->reset_context = 0; + netif_tx_start_all_queues(netdev); return 0; } @@ -2704,14 +2705,8 @@ static int qlcnic_open(struct net_device *netdev) err = __qlcnic_up(adapter, netdev); if (err) - goto err_out; - - netif_tx_start_all_queues(netdev); - - return 0; + qlcnic_detach(adapter); -err_out: - qlcnic_detach(adapter); return err; } |