aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/netxen/netxen_nic_main.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 8ffb30bc798f..f4996846a234 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -1011,8 +1011,10 @@ __netxen_nic_down(struct netxen_adapter *adapter, struct net_device *netdev)
1011 if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) 1011 if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC)
1012 return; 1012 return;
1013 1013
1014 clear_bit(__NX_DEV_UP, &adapter->state); 1014 if (!test_and_clear_bit(__NX_DEV_UP, &adapter->state))
1015 return;
1015 1016
1017 smp_mb();
1016 spin_lock(&adapter->tx_clean_lock); 1018 spin_lock(&adapter->tx_clean_lock);
1017 netif_carrier_off(netdev); 1019 netif_carrier_off(netdev);
1018 netif_tx_disable(netdev); 1020 netif_tx_disable(netdev);
@@ -2053,7 +2055,7 @@ static int netxen_nic_poll(struct napi_struct *napi, int budget)
2053 2055
2054 if ((work_done < budget) && tx_complete) { 2056 if ((work_done < budget) && tx_complete) {
2055 napi_complete(&sds_ring->napi); 2057 napi_complete(&sds_ring->napi);
2056 if (netif_running(adapter->netdev)) 2058 if (test_bit(__NX_DEV_UP, &adapter->state))
2057 netxen_nic_enable_int(sds_ring); 2059 netxen_nic_enable_int(sds_ring);
2058 } 2060 }
2059 2061