Skip to content

Commit

Permalink
netxen:fix napi intr enable check
Browse files Browse the repository at this point in the history
o netif_running() check for enabling interrupt at end of napi poll is
  not enough to cover firmwar recovery. Instead test __NX_DEV_UP bit.
o Avoid re-entry into to netxen_nic_down() with __NX_DEV_UP bit check.

Acked-by: Dhananjay Phadke <dhananjay.phadke@qlogic.com>
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Amit Kumar Salecha authored and David S. Miller committed Dec 9, 2009
1 parent 6f77141 commit f2251f6
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/net/netxen/netxen_nic_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1011,8 +1011,10 @@ __netxen_nic_down(struct netxen_adapter *adapter, struct net_device *netdev)
if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC)
return;

clear_bit(__NX_DEV_UP, &adapter->state);
if (!test_and_clear_bit(__NX_DEV_UP, &adapter->state))
return;

smp_mb();
spin_lock(&adapter->tx_clean_lock);
netif_carrier_off(netdev);
netif_tx_disable(netdev);
Expand Down Expand Up @@ -2053,7 +2055,7 @@ static int netxen_nic_poll(struct napi_struct *napi, int budget)

if ((work_done < budget) && tx_complete) {
napi_complete(&sds_ring->napi);
if (netif_running(adapter->netdev))
if (test_bit(__NX_DEV_UP, &adapter->state))
netxen_nic_enable_int(sds_ring);
}

Expand Down

0 comments on commit f2251f6

Please sign in to comment.