From 3f72b7d3070dc9ffd0a3075305714ada314d0306 Mon Sep 17 00:00:00 2001 From: Amit Kumar Salecha Date: Sat, 5 Dec 2009 12:23:55 +0000 Subject: [PATCH] --- yaml --- r: 175539 b: refs/heads/master c: f2251f668e9527b87c9ba7256e7497cb49abbc20 h: refs/heads/master i: 175537: 1ba60c92ed59ad83184df27f8b906564f0742805 175535: a682e2bf90613ffe1c1acac890ee6624682ec43e v: v3 --- [refs] | 2 +- trunk/drivers/net/netxen/netxen_nic_main.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 2dbaf1101335..5cc741e35f3c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6f7714196b4e01d7462df31d705c3ca53ecbdfc1 +refs/heads/master: f2251f668e9527b87c9ba7256e7497cb49abbc20 diff --git a/trunk/drivers/net/netxen/netxen_nic_main.c b/trunk/drivers/net/netxen/netxen_nic_main.c index 8ffb30bc798f..f4996846a234 100644 --- a/trunk/drivers/net/netxen/netxen_nic_main.c +++ b/trunk/drivers/net/netxen/netxen_nic_main.c @@ -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); @@ -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); }