diff options
author | David S. Miller <davem@davemloft.net> | 2009-02-24 06:50:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-02-24 06:50:29 -0500 |
commit | e70049b9e74267dd47e1ffa62302073487afcb48 (patch) | |
tree | 2cd000c0751ef31c9044b020d63f278cdf4f332d /drivers/net/mv643xx_eth.c | |
parent | d18921a0e319ab512f8186b1b1142c7b8634c779 (diff) | |
parent | f7e603ad8f78cd3b59e33fa72707da0cbabdf699 (diff) |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'drivers/net/mv643xx_eth.c')
-rw-r--r-- | drivers/net/mv643xx_eth.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index bb9693195242..56912add8b13 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -1263,7 +1263,7 @@ static void mib_counters_update(struct mv643xx_eth_private *mp) | |||
1263 | { | 1263 | { |
1264 | struct mib_counters *p = &mp->mib_counters; | 1264 | struct mib_counters *p = &mp->mib_counters; |
1265 | 1265 | ||
1266 | spin_lock(&mp->mib_counters_lock); | 1266 | spin_lock_bh(&mp->mib_counters_lock); |
1267 | p->good_octets_received += mib_read(mp, 0x00); | 1267 | p->good_octets_received += mib_read(mp, 0x00); |
1268 | p->good_octets_received += (u64)mib_read(mp, 0x04) << 32; | 1268 | p->good_octets_received += (u64)mib_read(mp, 0x04) << 32; |
1269 | p->bad_octets_received += mib_read(mp, 0x08); | 1269 | p->bad_octets_received += mib_read(mp, 0x08); |
@@ -1296,7 +1296,7 @@ static void mib_counters_update(struct mv643xx_eth_private *mp) | |||
1296 | p->bad_crc_event += mib_read(mp, 0x74); | 1296 | p->bad_crc_event += mib_read(mp, 0x74); |
1297 | p->collision += mib_read(mp, 0x78); | 1297 | p->collision += mib_read(mp, 0x78); |
1298 | p->late_collision += mib_read(mp, 0x7c); | 1298 | p->late_collision += mib_read(mp, 0x7c); |
1299 | spin_unlock(&mp->mib_counters_lock); | 1299 | spin_unlock_bh(&mp->mib_counters_lock); |
1300 | 1300 | ||
1301 | mod_timer(&mp->mib_counters_timer, jiffies + 30 * HZ); | 1301 | mod_timer(&mp->mib_counters_timer, jiffies + 30 * HZ); |
1302 | } | 1302 | } |
@@ -1831,7 +1831,7 @@ oom: | |||
1831 | return; | 1831 | return; |
1832 | } | 1832 | } |
1833 | 1833 | ||
1834 | mc_spec = kmalloc(0x200, GFP_KERNEL); | 1834 | mc_spec = kmalloc(0x200, GFP_ATOMIC); |
1835 | if (mc_spec == NULL) | 1835 | if (mc_spec == NULL) |
1836 | goto oom; | 1836 | goto oom; |
1837 | mc_other = mc_spec + (0x100 >> 2); | 1837 | mc_other = mc_spec + (0x100 >> 2); |
@@ -2457,8 +2457,6 @@ static int mv643xx_eth_stop(struct net_device *dev) | |||
2457 | wrlp(mp, INT_MASK, 0x00000000); | 2457 | wrlp(mp, INT_MASK, 0x00000000); |
2458 | rdlp(mp, INT_MASK); | 2458 | rdlp(mp, INT_MASK); |
2459 | 2459 | ||
2460 | del_timer_sync(&mp->mib_counters_timer); | ||
2461 | |||
2462 | napi_disable(&mp->napi); | 2460 | napi_disable(&mp->napi); |
2463 | 2461 | ||
2464 | del_timer_sync(&mp->rx_oom); | 2462 | del_timer_sync(&mp->rx_oom); |
@@ -2470,6 +2468,7 @@ static int mv643xx_eth_stop(struct net_device *dev) | |||
2470 | port_reset(mp); | 2468 | port_reset(mp); |
2471 | mv643xx_eth_get_stats(dev); | 2469 | mv643xx_eth_get_stats(dev); |
2472 | mib_counters_update(mp); | 2470 | mib_counters_update(mp); |
2471 | del_timer_sync(&mp->mib_counters_timer); | ||
2473 | 2472 | ||
2474 | skb_queue_purge(&mp->rx_recycle); | 2473 | skb_queue_purge(&mp->rx_recycle); |
2475 | 2474 | ||