diff options
author | Manish Chopra <manish.chopra@qlogic.com> | 2014-09-30 09:56:36 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-09-30 22:22:44 +0200 |
commit | 9295f940fb677b343980cd67f3c91a4eb48d2fae (patch) | |
tree | 23f47d40a2a16b4228ba7e10818b0d82ca78d169 /drivers/net/ethernet/qlogic | |
parent | netxen: Fix BUG "sleeping function called from invalid context" (diff) | |
download | linux-9295f940fb677b343980cd67f3c91a4eb48d2fae.tar.xz linux-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')
-rw-r--r-- | drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c | 4 |
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)) |