yam: convert to internal net_device_stats
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
2d8b223d81
commit
3c94acb7ee
@@ -115,10 +115,6 @@ struct yam_port {
|
|||||||
|
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
|
|
||||||
/* Stats section */
|
|
||||||
|
|
||||||
struct net_device_stats stats;
|
|
||||||
|
|
||||||
int nb_rxint;
|
int nb_rxint;
|
||||||
int nb_mdint;
|
int nb_mdint;
|
||||||
|
|
||||||
@@ -507,7 +503,7 @@ static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp)
|
|||||||
} else {
|
} else {
|
||||||
if (!(skb = dev_alloc_skb(pkt_len))) {
|
if (!(skb = dev_alloc_skb(pkt_len))) {
|
||||||
printk(KERN_WARNING "%s: memory squeeze, dropping packet\n", dev->name);
|
printk(KERN_WARNING "%s: memory squeeze, dropping packet\n", dev->name);
|
||||||
++yp->stats.rx_dropped;
|
++dev->stats.rx_dropped;
|
||||||
} else {
|
} else {
|
||||||
unsigned char *cp;
|
unsigned char *cp;
|
||||||
cp = skb_put(skb, pkt_len);
|
cp = skb_put(skb, pkt_len);
|
||||||
@@ -515,7 +511,7 @@ static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp)
|
|||||||
memcpy(cp, yp->rx_buf, pkt_len - 1);
|
memcpy(cp, yp->rx_buf, pkt_len - 1);
|
||||||
skb->protocol = ax25_type_trans(skb, dev);
|
skb->protocol = ax25_type_trans(skb, dev);
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
++yp->stats.rx_packets;
|
++dev->stats.rx_packets;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -677,7 +673,7 @@ static void yam_tx_byte(struct net_device *dev, struct yam_port *yp)
|
|||||||
yp->tx_count = 1;
|
yp->tx_count = 1;
|
||||||
yp->tx_state = TX_HEAD;
|
yp->tx_state = TX_HEAD;
|
||||||
}
|
}
|
||||||
++yp->stats.tx_packets;
|
++dev->stats.tx_packets;
|
||||||
break;
|
break;
|
||||||
case TX_TAIL:
|
case TX_TAIL:
|
||||||
if (--yp->tx_count <= 0) {
|
if (--yp->tx_count <= 0) {
|
||||||
@@ -716,7 +712,7 @@ static irqreturn_t yam_interrupt(int irq, void *dev_id)
|
|||||||
handled = 1;
|
handled = 1;
|
||||||
|
|
||||||
if (lsr & LSR_OE)
|
if (lsr & LSR_OE)
|
||||||
++yp->stats.rx_fifo_errors;
|
++dev->stats.rx_fifo_errors;
|
||||||
|
|
||||||
yp->dcd = (msr & RX_DCD) ? 1 : 0;
|
yp->dcd = (msr & RX_DCD) ? 1 : 0;
|
||||||
|
|
||||||
@@ -778,11 +774,11 @@ static int yam_seq_show(struct seq_file *seq, void *v)
|
|||||||
seq_printf(seq, " TxTail %u\n", yp->txtail);
|
seq_printf(seq, " TxTail %u\n", yp->txtail);
|
||||||
seq_printf(seq, " SlotTime %u\n", yp->slot);
|
seq_printf(seq, " SlotTime %u\n", yp->slot);
|
||||||
seq_printf(seq, " Persist %u\n", yp->pers);
|
seq_printf(seq, " Persist %u\n", yp->pers);
|
||||||
seq_printf(seq, " TxFrames %lu\n", yp->stats.tx_packets);
|
seq_printf(seq, " TxFrames %lu\n", dev->stats.tx_packets);
|
||||||
seq_printf(seq, " RxFrames %lu\n", yp->stats.rx_packets);
|
seq_printf(seq, " RxFrames %lu\n", dev->stats.rx_packets);
|
||||||
seq_printf(seq, " TxInt %u\n", yp->nb_mdint);
|
seq_printf(seq, " TxInt %u\n", yp->nb_mdint);
|
||||||
seq_printf(seq, " RxInt %u\n", yp->nb_rxint);
|
seq_printf(seq, " RxInt %u\n", yp->nb_rxint);
|
||||||
seq_printf(seq, " RxOver %lu\n", yp->stats.rx_fifo_errors);
|
seq_printf(seq, " RxOver %lu\n", dev->stats.rx_fifo_errors);
|
||||||
seq_printf(seq, "\n");
|
seq_printf(seq, "\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -810,26 +806,6 @@ static const struct file_operations yam_info_fops = {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
static struct net_device_stats *yam_get_stats(struct net_device *dev)
|
|
||||||
{
|
|
||||||
struct yam_port *yp;
|
|
||||||
|
|
||||||
if (!dev)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
yp = netdev_priv(dev);
|
|
||||||
if (yp->magic != YAM_MAGIC)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get the current statistics. This may be called with the
|
|
||||||
* card open or closed.
|
|
||||||
*/
|
|
||||||
return &yp->stats;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
|
|
||||||
static int yam_open(struct net_device *dev)
|
static int yam_open(struct net_device *dev)
|
||||||
@@ -878,9 +854,9 @@ static int yam_open(struct net_device *dev)
|
|||||||
/* Reset overruns for all ports - FPGA programming makes overruns */
|
/* Reset overruns for all ports - FPGA programming makes overruns */
|
||||||
for (i = 0; i < NR_PORTS; i++) {
|
for (i = 0; i < NR_PORTS; i++) {
|
||||||
struct net_device *dev = yam_devs[i];
|
struct net_device *dev = yam_devs[i];
|
||||||
struct yam_port *yp = netdev_priv(dev);
|
|
||||||
inb(LSR(dev->base_addr));
|
inb(LSR(dev->base_addr));
|
||||||
yp->stats.rx_fifo_errors = 0;
|
dev->stats.rx_fifo_errors = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
printk(KERN_INFO "%s at iobase 0x%lx irq %u uart %s\n", dev->name, dev->base_addr, dev->irq,
|
printk(KERN_INFO "%s at iobase 0x%lx irq %u uart %s\n", dev->name, dev->base_addr, dev->irq,
|
||||||
|
Reference in New Issue
Block a user