Commit 86678a20 authored by Kulikov Vasiliy's avatar Kulikov Vasiliy Committed by David S. Miller

starfire: 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: default avatarKulikov Vasiliy <segooon@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0b9be50b
...@@ -562,7 +562,6 @@ struct netdev_private { ...@@ -562,7 +562,6 @@ struct netdev_private {
unsigned int tx_done; unsigned int tx_done;
struct napi_struct napi; struct napi_struct napi;
struct net_device *dev; struct net_device *dev;
struct net_device_stats stats;
struct pci_dev *pci_dev; struct pci_dev *pci_dev;
#ifdef VLAN_SUPPORT #ifdef VLAN_SUPPORT
struct vlan_group *vlgrp; struct vlan_group *vlgrp;
...@@ -1174,7 +1173,7 @@ static void tx_timeout(struct net_device *dev) ...@@ -1174,7 +1173,7 @@ static void tx_timeout(struct net_device *dev)
/* Trigger an immediate transmit demand. */ /* Trigger an immediate transmit demand. */
dev->trans_start = jiffies; /* prevent tx timeout */ dev->trans_start = jiffies; /* prevent tx timeout */
np->stats.tx_errors++; dev->stats.tx_errors++;
netif_wake_queue(dev); netif_wake_queue(dev);
} }
...@@ -1265,7 +1264,7 @@ static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev) ...@@ -1265,7 +1264,7 @@ static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev)
} }
if (skb->ip_summed == CHECKSUM_PARTIAL) { if (skb->ip_summed == CHECKSUM_PARTIAL) {
status |= TxCalTCP; status |= TxCalTCP;
np->stats.tx_compressed++; dev->stats.tx_compressed++;
} }
status |= skb_first_frag_len(skb) | (skb_num_frags(skb) << 16); status |= skb_first_frag_len(skb) | (skb_num_frags(skb) << 16);
...@@ -1374,7 +1373,7 @@ static irqreturn_t intr_handler(int irq, void *dev_instance) ...@@ -1374,7 +1373,7 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)
printk(KERN_DEBUG "%s: Tx completion #%d entry %d is %#8.8x.\n", printk(KERN_DEBUG "%s: Tx completion #%d entry %d is %#8.8x.\n",
dev->name, np->dirty_tx, np->tx_done, tx_status); dev->name, np->dirty_tx, np->tx_done, tx_status);
if ((tx_status & 0xe0000000) == 0xa0000000) { if ((tx_status & 0xe0000000) == 0xa0000000) {
np->stats.tx_packets++; dev->stats.tx_packets++;
} else if ((tx_status & 0xe0000000) == 0x80000000) { } else if ((tx_status & 0xe0000000) == 0x80000000) {
u16 entry = (tx_status & 0x7fff) / sizeof(starfire_tx_desc); u16 entry = (tx_status & 0x7fff) / sizeof(starfire_tx_desc);
struct sk_buff *skb = np->tx_info[entry].skb; struct sk_buff *skb = np->tx_info[entry].skb;
...@@ -1462,9 +1461,9 @@ static int __netdev_rx(struct net_device *dev, int *quota) ...@@ -1462,9 +1461,9 @@ static int __netdev_rx(struct net_device *dev, int *quota)
/* There was an error. */ /* There was an error. */
if (debug > 2) if (debug > 2)
printk(KERN_DEBUG " netdev_rx() Rx error was %#8.8x.\n", desc_status); printk(KERN_DEBUG " netdev_rx() Rx error was %#8.8x.\n", desc_status);
np->stats.rx_errors++; dev->stats.rx_errors++;
if (desc_status & RxFIFOErr) if (desc_status & RxFIFOErr)
np->stats.rx_fifo_errors++; dev->stats.rx_fifo_errors++;
goto next_rx; goto next_rx;
} }
...@@ -1515,7 +1514,7 @@ static int __netdev_rx(struct net_device *dev, int *quota) ...@@ -1515,7 +1514,7 @@ static int __netdev_rx(struct net_device *dev, int *quota)
#endif #endif
if (le16_to_cpu(desc->status2) & 0x0100) { if (le16_to_cpu(desc->status2) & 0x0100) {
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->ip_summed = CHECKSUM_UNNECESSARY;
np->stats.rx_compressed++; dev->stats.rx_compressed++;
} }
/* /*
* This feature doesn't seem to be working, at least * This feature doesn't seem to be working, at least
...@@ -1547,7 +1546,7 @@ static int __netdev_rx(struct net_device *dev, int *quota) ...@@ -1547,7 +1546,7 @@ static int __netdev_rx(struct net_device *dev, int *quota)
} else } else
#endif /* VLAN_SUPPORT */ #endif /* VLAN_SUPPORT */
netif_receive_skb(skb); netif_receive_skb(skb);
np->stats.rx_packets++; dev->stats.rx_packets++;
next_rx: next_rx:
np->cur_rx++; np->cur_rx++;
...@@ -1717,12 +1716,12 @@ static void netdev_error(struct net_device *dev, int intr_status) ...@@ -1717,12 +1716,12 @@ static void netdev_error(struct net_device *dev, int intr_status)
printk(KERN_WARNING "%s: PCI Tx underflow -- adapter is probably malfunctioning\n", dev->name); printk(KERN_WARNING "%s: PCI Tx underflow -- adapter is probably malfunctioning\n", dev->name);
} }
if (intr_status & IntrRxGFPDead) { if (intr_status & IntrRxGFPDead) {
np->stats.rx_fifo_errors++; dev->stats.rx_fifo_errors++;
np->stats.rx_errors++; dev->stats.rx_errors++;
} }
if (intr_status & (IntrNoTxCsum | IntrDMAErr)) { if (intr_status & (IntrNoTxCsum | IntrDMAErr)) {
np->stats.tx_fifo_errors++; dev->stats.tx_fifo_errors++;
np->stats.tx_errors++; dev->stats.tx_errors++;
} }
if ((intr_status & ~(IntrNormalMask | IntrAbnormalSummary | IntrLinkChange | IntrStatsMax | IntrTxDataLow | IntrRxGFPDead | IntrNoTxCsum | IntrPCIPad)) && debug) if ((intr_status & ~(IntrNormalMask | IntrAbnormalSummary | IntrLinkChange | IntrStatsMax | IntrTxDataLow | IntrRxGFPDead | IntrNoTxCsum | IntrPCIPad)) && debug)
printk(KERN_ERR "%s: Something Wicked happened! %#8.8x.\n", printk(KERN_ERR "%s: Something Wicked happened! %#8.8x.\n",
...@@ -1736,24 +1735,24 @@ static struct net_device_stats *get_stats(struct net_device *dev) ...@@ -1736,24 +1735,24 @@ static struct net_device_stats *get_stats(struct net_device *dev)
void __iomem *ioaddr = np->base; void __iomem *ioaddr = np->base;
/* This adapter architecture needs no SMP locks. */ /* This adapter architecture needs no SMP locks. */
np->stats.tx_bytes = readl(ioaddr + 0x57010); dev->stats.tx_bytes = readl(ioaddr + 0x57010);
np->stats.rx_bytes = readl(ioaddr + 0x57044); dev->stats.rx_bytes = readl(ioaddr + 0x57044);
np->stats.tx_packets = readl(ioaddr + 0x57000); dev->stats.tx_packets = readl(ioaddr + 0x57000);
np->stats.tx_aborted_errors = dev->stats.tx_aborted_errors =
readl(ioaddr + 0x57024) + readl(ioaddr + 0x57028); readl(ioaddr + 0x57024) + readl(ioaddr + 0x57028);
np->stats.tx_window_errors = readl(ioaddr + 0x57018); dev->stats.tx_window_errors = readl(ioaddr + 0x57018);
np->stats.collisions = dev->stats.collisions =
readl(ioaddr + 0x57004) + readl(ioaddr + 0x57008); readl(ioaddr + 0x57004) + readl(ioaddr + 0x57008);
/* The chip only need report frame silently dropped. */ /* The chip only need report frame silently dropped. */
np->stats.rx_dropped += readw(ioaddr + RxDMAStatus); dev->stats.rx_dropped += readw(ioaddr + RxDMAStatus);
writew(0, ioaddr + RxDMAStatus); writew(0, ioaddr + RxDMAStatus);
np->stats.rx_crc_errors = readl(ioaddr + 0x5703C); dev->stats.rx_crc_errors = readl(ioaddr + 0x5703C);
np->stats.rx_frame_errors = readl(ioaddr + 0x57040); dev->stats.rx_frame_errors = readl(ioaddr + 0x57040);
np->stats.rx_length_errors = readl(ioaddr + 0x57058); dev->stats.rx_length_errors = readl(ioaddr + 0x57058);
np->stats.rx_missed_errors = readl(ioaddr + 0x5707C); dev->stats.rx_missed_errors = readl(ioaddr + 0x5707C);
return &np->stats; return &dev->stats;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment