diff options
Diffstat (limited to 'drivers/net/ns83820.c')
-rw-r--r-- | drivers/net/ns83820.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c index e88e97cd1b10..5a3488f76b38 100644 --- a/drivers/net/ns83820.c +++ b/drivers/net/ns83820.c | |||
@@ -424,7 +424,6 @@ struct rx_info { | |||
424 | 424 | ||
425 | 425 | ||
426 | struct ns83820 { | 426 | struct ns83820 { |
427 | struct net_device_stats stats; | ||
428 | u8 __iomem *base; | 427 | u8 __iomem *base; |
429 | 428 | ||
430 | struct pci_dev *pci_dev; | 429 | struct pci_dev *pci_dev; |
@@ -918,9 +917,9 @@ static void rx_irq(struct net_device *ndev) | |||
918 | if (unlikely(!skb)) | 917 | if (unlikely(!skb)) |
919 | goto netdev_mangle_me_harder_failed; | 918 | goto netdev_mangle_me_harder_failed; |
920 | if (cmdsts & CMDSTS_DEST_MULTI) | 919 | if (cmdsts & CMDSTS_DEST_MULTI) |
921 | dev->stats.multicast ++; | 920 | ndev->stats.multicast++; |
922 | dev->stats.rx_packets ++; | 921 | ndev->stats.rx_packets++; |
923 | dev->stats.rx_bytes += len; | 922 | ndev->stats.rx_bytes += len; |
924 | if ((extsts & 0x002a0000) && !(extsts & 0x00540000)) { | 923 | if ((extsts & 0x002a0000) && !(extsts & 0x00540000)) { |
925 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 924 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
926 | } else { | 925 | } else { |
@@ -940,7 +939,7 @@ static void rx_irq(struct net_device *ndev) | |||
940 | #endif | 939 | #endif |
941 | if (NET_RX_DROP == rx_rc) { | 940 | if (NET_RX_DROP == rx_rc) { |
942 | netdev_mangle_me_harder_failed: | 941 | netdev_mangle_me_harder_failed: |
943 | dev->stats.rx_dropped ++; | 942 | ndev->stats.rx_dropped++; |
944 | } | 943 | } |
945 | } else { | 944 | } else { |
946 | kfree_skb(skb); | 945 | kfree_skb(skb); |
@@ -1008,11 +1007,11 @@ static void do_tx_done(struct net_device *ndev) | |||
1008 | dma_addr_t addr; | 1007 | dma_addr_t addr; |
1009 | 1008 | ||
1010 | if (cmdsts & CMDSTS_ERR) | 1009 | if (cmdsts & CMDSTS_ERR) |
1011 | dev->stats.tx_errors ++; | 1010 | ndev->stats.tx_errors++; |
1012 | if (cmdsts & CMDSTS_OK) | 1011 | if (cmdsts & CMDSTS_OK) |
1013 | dev->stats.tx_packets ++; | 1012 | ndev->stats.tx_packets++; |
1014 | if (cmdsts & CMDSTS_OK) | 1013 | if (cmdsts & CMDSTS_OK) |
1015 | dev->stats.tx_bytes += cmdsts & 0xffff; | 1014 | ndev->stats.tx_bytes += cmdsts & 0xffff; |
1016 | 1015 | ||
1017 | dprintk("tx_done_idx=%d free_idx=%d cmdsts=%08x\n", | 1016 | dprintk("tx_done_idx=%d free_idx=%d cmdsts=%08x\n", |
1018 | tx_done_idx, dev->tx_free_idx, cmdsts); | 1017 | tx_done_idx, dev->tx_free_idx, cmdsts); |
@@ -1212,20 +1211,21 @@ again: | |||
1212 | 1211 | ||
1213 | static void ns83820_update_stats(struct ns83820 *dev) | 1212 | static void ns83820_update_stats(struct ns83820 *dev) |
1214 | { | 1213 | { |
1214 | struct net_device *ndev = dev->ndev; | ||
1215 | u8 __iomem *base = dev->base; | 1215 | u8 __iomem *base = dev->base; |
1216 | 1216 | ||
1217 | /* the DP83820 will freeze counters, so we need to read all of them */ | 1217 | /* the DP83820 will freeze counters, so we need to read all of them */ |
1218 | dev->stats.rx_errors += readl(base + 0x60) & 0xffff; | 1218 | ndev->stats.rx_errors += readl(base + 0x60) & 0xffff; |
1219 | dev->stats.rx_crc_errors += readl(base + 0x64) & 0xffff; | 1219 | ndev->stats.rx_crc_errors += readl(base + 0x64) & 0xffff; |
1220 | dev->stats.rx_missed_errors += readl(base + 0x68) & 0xffff; | 1220 | ndev->stats.rx_missed_errors += readl(base + 0x68) & 0xffff; |
1221 | dev->stats.rx_frame_errors += readl(base + 0x6c) & 0xffff; | 1221 | ndev->stats.rx_frame_errors += readl(base + 0x6c) & 0xffff; |
1222 | /*dev->stats.rx_symbol_errors +=*/ readl(base + 0x70); | 1222 | /*ndev->stats.rx_symbol_errors +=*/ readl(base + 0x70); |
1223 | dev->stats.rx_length_errors += readl(base + 0x74) & 0xffff; | 1223 | ndev->stats.rx_length_errors += readl(base + 0x74) & 0xffff; |
1224 | dev->stats.rx_length_errors += readl(base + 0x78) & 0xffff; | 1224 | ndev->stats.rx_length_errors += readl(base + 0x78) & 0xffff; |
1225 | /*dev->stats.rx_badopcode_errors += */ readl(base + 0x7c); | 1225 | /*ndev->stats.rx_badopcode_errors += */ readl(base + 0x7c); |
1226 | /*dev->stats.rx_pause_count += */ readl(base + 0x80); | 1226 | /*ndev->stats.rx_pause_count += */ readl(base + 0x80); |
1227 | /*dev->stats.tx_pause_count += */ readl(base + 0x84); | 1227 | /*ndev->stats.tx_pause_count += */ readl(base + 0x84); |
1228 | dev->stats.tx_carrier_errors += readl(base + 0x88) & 0xff; | 1228 | ndev->stats.tx_carrier_errors += readl(base + 0x88) & 0xff; |
1229 | } | 1229 | } |
1230 | 1230 | ||
1231 | static struct net_device_stats *ns83820_get_stats(struct net_device *ndev) | 1231 | static struct net_device_stats *ns83820_get_stats(struct net_device *ndev) |
@@ -1237,7 +1237,7 @@ static struct net_device_stats *ns83820_get_stats(struct net_device *ndev) | |||
1237 | ns83820_update_stats(dev); | 1237 | ns83820_update_stats(dev); |
1238 | spin_unlock_irq(&dev->misc_lock); | 1238 | spin_unlock_irq(&dev->misc_lock); |
1239 | 1239 | ||
1240 | return &dev->stats; | 1240 | return &ndev->stats; |
1241 | } | 1241 | } |
1242 | 1242 | ||
1243 | /* Let ethtool retrieve info */ | 1243 | /* Let ethtool retrieve info */ |
@@ -1464,12 +1464,12 @@ static void ns83820_do_isr(struct net_device *ndev, u32 isr) | |||
1464 | 1464 | ||
1465 | if (unlikely(ISR_RXSOVR & isr)) { | 1465 | if (unlikely(ISR_RXSOVR & isr)) { |
1466 | //printk("overrun: rxsovr\n"); | 1466 | //printk("overrun: rxsovr\n"); |
1467 | dev->stats.rx_fifo_errors ++; | 1467 | ndev->stats.rx_fifo_errors++; |
1468 | } | 1468 | } |
1469 | 1469 | ||
1470 | if (unlikely(ISR_RXORN & isr)) { | 1470 | if (unlikely(ISR_RXORN & isr)) { |
1471 | //printk("overrun: rxorn\n"); | 1471 | //printk("overrun: rxorn\n"); |
1472 | dev->stats.rx_fifo_errors ++; | 1472 | ndev->stats.rx_fifo_errors++; |
1473 | } | 1473 | } |
1474 | 1474 | ||
1475 | if ((ISR_RXRCMP & isr) && dev->rx_info.up) | 1475 | if ((ISR_RXRCMP & isr) && dev->rx_info.up) |