aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic/netxen
diff options
context:
space:
mode:
authorManish Chopra <manish.chopra@qlogic.com>2014-09-30 03:56:36 -0400
committerDavid S. Miller <davem@davemloft.net>2014-09-30 16:22:44 -0400
commit9295f940fb677b343980cd67f3c91a4eb48d2fae (patch)
tree23f47d40a2a16b4228ba7e10818b0d82ca78d169 /drivers/net/ethernet/qlogic/netxen
parentnetxen: Fix BUG "sleeping function called from invalid context" (diff)
downloadlinux-dev-9295f940fb677b343980cd67f3c91a4eb48d2fae.tar.xz
linux-dev-9295f940fb677b343980cd67f3c91a4eb48d2fae.zip
netxen: Fix bug in Tx completion path.
o Driver is not updating sw_consumer while processing Tx completion when interface is going down. Due to this interface down path gets stuck forever waiting for NAPI to complete. Signed-off-by: Manish Chopra <manish.chopra@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/netxen')
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
index ae4ec7b3bfd3..5c4068353f66 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
@@ -1794,9 +1794,9 @@ int netxen_process_cmd_ring(struct netxen_adapter *adapter)
break;
}
- if (count && netif_running(netdev)) {
- tx_ring->sw_consumer = sw_consumer;
+ tx_ring->sw_consumer = sw_consumer;
+ if (count && netif_running(netdev)) {
smp_mb();
if (netif_queue_stopped(netdev) && netif_carrier_ok(netdev))