net: use netdev stats in b44, sundance, via-rhine and via-velocity

Use struct net_device_stats provided in struct net_device instead of
private ones.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Eric Dumazet
2009-05-27 10:34:50 +00:00
committed by David S. Miller
parent 1ce8e7b57b
commit 553e233562
6 changed files with 73 additions and 66 deletions

View File

@@ -369,7 +369,6 @@ struct netdev_private {
struct sk_buff* tx_skbuff[TX_RING_SIZE];
dma_addr_t tx_ring_dma;
dma_addr_t rx_ring_dma;
struct net_device_stats stats;
struct timer_list timer; /* Media monitoring timer. */
/* Frequently used values: keep some adjacent for cache effect. */
spinlock_t lock;
@@ -975,7 +974,7 @@ static void tx_timeout(struct net_device *dev)
dev->if_port = 0;
dev->trans_start = jiffies;
np->stats.tx_errors++;
dev->stats.tx_errors++;
if (np->cur_tx - np->dirty_tx < TX_QUEUE_LEN - 4) {
netif_wake_queue(dev);
}
@@ -1123,7 +1122,7 @@ reset_tx (struct net_device *dev)
else
dev_kfree_skb (skb);
np->tx_skbuff[i] = NULL;
np->stats.tx_dropped++;
dev->stats.tx_dropped++;
}
}
np->cur_tx = np->dirty_tx = 0;
@@ -1181,15 +1180,15 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)
if (netif_msg_tx_err(np))
printk("%s: Transmit error status %4.4x.\n",
dev->name, tx_status);
np->stats.tx_errors++;
dev->stats.tx_errors++;
if (tx_status & 0x10)
np->stats.tx_fifo_errors++;
dev->stats.tx_fifo_errors++;
if (tx_status & 0x08)
np->stats.collisions++;
dev->stats.collisions++;
if (tx_status & 0x04)
np->stats.tx_fifo_errors++;
dev->stats.tx_fifo_errors++;
if (tx_status & 0x02)
np->stats.tx_window_errors++;
dev->stats.tx_window_errors++;
/*
** This reset has been verified on
@@ -1313,11 +1312,15 @@ static void rx_poll(unsigned long data)
if (netif_msg_rx_err(np))
printk(KERN_DEBUG " netdev_rx() Rx error was %8.8x.\n",
frame_status);
np->stats.rx_errors++;
if (frame_status & 0x00100000) np->stats.rx_length_errors++;
if (frame_status & 0x00010000) np->stats.rx_fifo_errors++;
if (frame_status & 0x00060000) np->stats.rx_frame_errors++;
if (frame_status & 0x00080000) np->stats.rx_crc_errors++;
dev->stats.rx_errors++;
if (frame_status & 0x00100000)
dev->stats.rx_length_errors++;
if (frame_status & 0x00010000)
dev->stats.rx_fifo_errors++;
if (frame_status & 0x00060000)
dev->stats.rx_frame_errors++;
if (frame_status & 0x00080000)
dev->stats.rx_crc_errors++;
if (frame_status & 0x00100000) {
printk(KERN_WARNING "%s: Oversized Ethernet frame,"
" status %8.8x.\n",
@@ -1485,22 +1488,22 @@ static struct net_device_stats *get_stats(struct net_device *dev)
the vulnerability window is very small and statistics are
non-critical. */
/* The chip only need report frame silently dropped. */
np->stats.rx_missed_errors += ioread8(ioaddr + RxMissed);
np->stats.tx_packets += ioread16(ioaddr + TxFramesOK);
np->stats.rx_packets += ioread16(ioaddr + RxFramesOK);
np->stats.collisions += ioread8(ioaddr + StatsLateColl);
np->stats.collisions += ioread8(ioaddr + StatsMultiColl);
np->stats.collisions += ioread8(ioaddr + StatsOneColl);
np->stats.tx_carrier_errors += ioread8(ioaddr + StatsCarrierError);
dev->stats.rx_missed_errors += ioread8(ioaddr + RxMissed);
dev->stats.tx_packets += ioread16(ioaddr + TxFramesOK);
dev->stats.rx_packets += ioread16(ioaddr + RxFramesOK);
dev->stats.collisions += ioread8(ioaddr + StatsLateColl);
dev->stats.collisions += ioread8(ioaddr + StatsMultiColl);
dev->stats.collisions += ioread8(ioaddr + StatsOneColl);
dev->stats.tx_carrier_errors += ioread8(ioaddr + StatsCarrierError);
ioread8(ioaddr + StatsTxDefer);
for (i = StatsTxDefer; i <= StatsMcastRx; i++)
ioread8(ioaddr + i);
np->stats.tx_bytes += ioread16(ioaddr + TxOctetsLow);
np->stats.tx_bytes += ioread16(ioaddr + TxOctetsHigh) << 16;
np->stats.rx_bytes += ioread16(ioaddr + RxOctetsLow);
np->stats.rx_bytes += ioread16(ioaddr + RxOctetsHigh) << 16;
dev->stats.tx_bytes += ioread16(ioaddr + TxOctetsLow);
dev->stats.tx_bytes += ioread16(ioaddr + TxOctetsHigh) << 16;
dev->stats.rx_bytes += ioread16(ioaddr + RxOctetsLow);
dev->stats.rx_bytes += ioread16(ioaddr + RxOctetsHigh) << 16;
return &np->stats;
return &dev->stats;
}
static void set_rx_mode(struct net_device *dev)