hp100: Use the instance of net_device_stats from net_device.

Since net_device has an instance of net_device_stats,
we can remove the instance of this from the adapter structure.

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Kulikov Vasiliy 2010-07-05 02:13:46 +00:00 committed by David S. Miller
parent 86678a2018
commit ad6f84b4ba

View file

@ -168,7 +168,6 @@ struct hp100_private {
u_char mac1_mode; u_char mac1_mode;
u_char mac2_mode; u_char mac2_mode;
u_char hash_bytes[8]; u_char hash_bytes[8];
struct net_device_stats stats;
/* Rings for busmaster mode: */ /* Rings for busmaster mode: */
hp100_ring_t *rxrhead; /* Head (oldest) index into rxring */ hp100_ring_t *rxrhead; /* Head (oldest) index into rxring */
@ -1582,8 +1581,8 @@ static netdev_tx_t hp100_start_xmit_bm(struct sk_buff *skb,
spin_unlock_irqrestore(&lp->lock, flags); spin_unlock_irqrestore(&lp->lock, flags);
/* Update statistics */ /* Update statistics */
lp->stats.tx_packets++; dev->stats.tx_packets++;
lp->stats.tx_bytes += skb->len; dev->stats.tx_bytes += skb->len;
return NETDEV_TX_OK; return NETDEV_TX_OK;
@ -1740,8 +1739,8 @@ static netdev_tx_t hp100_start_xmit(struct sk_buff *skb,
hp100_outb(HP100_TX_CMD | HP100_SET_LB, OPTION_MSW); /* send packet */ hp100_outb(HP100_TX_CMD | HP100_SET_LB, OPTION_MSW); /* send packet */
lp->stats.tx_packets++; dev->stats.tx_packets++;
lp->stats.tx_bytes += skb->len; dev->stats.tx_bytes += skb->len;
hp100_ints_on(); hp100_ints_on();
spin_unlock_irqrestore(&lp->lock, flags); spin_unlock_irqrestore(&lp->lock, flags);
@ -1822,7 +1821,7 @@ static void hp100_rx(struct net_device *dev)
printk("hp100: %s: rx: couldn't allocate a sk_buff of size %d\n", printk("hp100: %s: rx: couldn't allocate a sk_buff of size %d\n",
dev->name, pkt_len); dev->name, pkt_len);
#endif #endif
lp->stats.rx_dropped++; dev->stats.rx_dropped++;
} else { /* skb successfully allocated */ } else { /* skb successfully allocated */
u_char *ptr; u_char *ptr;
@ -1848,8 +1847,8 @@ static void hp100_rx(struct net_device *dev)
ptr[9], ptr[10], ptr[11]); ptr[9], ptr[10], ptr[11]);
#endif #endif
netif_rx(skb); netif_rx(skb);
lp->stats.rx_packets++; dev->stats.rx_packets++;
lp->stats.rx_bytes += pkt_len; dev->stats.rx_bytes += pkt_len;
} }
/* Indicate the card that we have got the packet */ /* Indicate the card that we have got the packet */
@ -1858,7 +1857,7 @@ static void hp100_rx(struct net_device *dev)
switch (header & 0x00070000) { switch (header & 0x00070000) {
case (HP100_MULTI_ADDR_HASH << 16): case (HP100_MULTI_ADDR_HASH << 16):
case (HP100_MULTI_ADDR_NO_HASH << 16): case (HP100_MULTI_ADDR_NO_HASH << 16):
lp->stats.multicast++; dev->stats.multicast++;
break; break;
} }
} /* end of while(there are packets) loop */ } /* end of while(there are packets) loop */
@ -1930,7 +1929,7 @@ static void hp100_rx_bm(struct net_device *dev)
if (ptr->skb == NULL) { if (ptr->skb == NULL) {
printk("hp100: %s: rx_bm: skb null\n", dev->name); printk("hp100: %s: rx_bm: skb null\n", dev->name);
/* can happen if we only allocated room for the pdh due to memory shortage. */ /* can happen if we only allocated room for the pdh due to memory shortage. */
lp->stats.rx_dropped++; dev->stats.rx_dropped++;
} else { } else {
skb_trim(ptr->skb, pkt_len); /* Shorten it */ skb_trim(ptr->skb, pkt_len); /* Shorten it */
ptr->skb->protocol = ptr->skb->protocol =
@ -1938,14 +1937,14 @@ static void hp100_rx_bm(struct net_device *dev)
netif_rx(ptr->skb); /* Up and away... */ netif_rx(ptr->skb); /* Up and away... */
lp->stats.rx_packets++; dev->stats.rx_packets++;
lp->stats.rx_bytes += pkt_len; dev->stats.rx_bytes += pkt_len;
} }
switch (header & 0x00070000) { switch (header & 0x00070000) {
case (HP100_MULTI_ADDR_HASH << 16): case (HP100_MULTI_ADDR_HASH << 16):
case (HP100_MULTI_ADDR_NO_HASH << 16): case (HP100_MULTI_ADDR_NO_HASH << 16):
lp->stats.multicast++; dev->stats.multicast++;
break; break;
} }
} else { } else {
@ -1954,7 +1953,7 @@ static void hp100_rx_bm(struct net_device *dev)
#endif #endif
if (ptr->skb != NULL) if (ptr->skb != NULL)
dev_kfree_skb_any(ptr->skb); dev_kfree_skb_any(ptr->skb);
lp->stats.rx_errors++; dev->stats.rx_errors++;
} }
lp->rxrhead = lp->rxrhead->next; lp->rxrhead = lp->rxrhead->next;
@ -1992,14 +1991,13 @@ static struct net_device_stats *hp100_get_stats(struct net_device *dev)
hp100_update_stats(dev); hp100_update_stats(dev);
hp100_ints_on(); hp100_ints_on();
spin_unlock_irqrestore(&lp->lock, flags); spin_unlock_irqrestore(&lp->lock, flags);
return &(lp->stats); return &(dev->stats);
} }
static void hp100_update_stats(struct net_device *dev) static void hp100_update_stats(struct net_device *dev)
{ {
int ioaddr = dev->base_addr; int ioaddr = dev->base_addr;
u_short val; u_short val;
struct hp100_private *lp = netdev_priv(dev);
#ifdef HP100_DEBUG_B #ifdef HP100_DEBUG_B
hp100_outw(0x4216, TRACE); hp100_outw(0x4216, TRACE);
@ -2009,14 +2007,14 @@ static void hp100_update_stats(struct net_device *dev)
/* Note: Statistics counters clear when read. */ /* Note: Statistics counters clear when read. */
hp100_page(MAC_CTRL); hp100_page(MAC_CTRL);
val = hp100_inw(DROPPED) & 0x0fff; val = hp100_inw(DROPPED) & 0x0fff;
lp->stats.rx_errors += val; dev->stats.rx_errors += val;
lp->stats.rx_over_errors += val; dev->stats.rx_over_errors += val;
val = hp100_inb(CRC); val = hp100_inb(CRC);
lp->stats.rx_errors += val; dev->stats.rx_errors += val;
lp->stats.rx_crc_errors += val; dev->stats.rx_crc_errors += val;
val = hp100_inb(ABORT); val = hp100_inb(ABORT);
lp->stats.tx_errors += val; dev->stats.tx_errors += val;
lp->stats.tx_aborted_errors += val; dev->stats.tx_aborted_errors += val;
hp100_page(PERFORMANCE); hp100_page(PERFORMANCE);
} }
@ -2025,7 +2023,6 @@ static void hp100_misc_interrupt(struct net_device *dev)
#ifdef HP100_DEBUG_B #ifdef HP100_DEBUG_B
int ioaddr = dev->base_addr; int ioaddr = dev->base_addr;
#endif #endif
struct hp100_private *lp = netdev_priv(dev);
#ifdef HP100_DEBUG_B #ifdef HP100_DEBUG_B
int ioaddr = dev->base_addr; int ioaddr = dev->base_addr;
@ -2034,8 +2031,8 @@ static void hp100_misc_interrupt(struct net_device *dev)
#endif #endif
/* Note: Statistics counters clear when read. */ /* Note: Statistics counters clear when read. */
lp->stats.rx_errors++; dev->stats.rx_errors++;
lp->stats.tx_errors++; dev->stats.tx_errors++;
} }
static void hp100_clear_stats(struct hp100_private *lp, int ioaddr) static void hp100_clear_stats(struct hp100_private *lp, int ioaddr)