aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/hamradio/yam.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/hamradio/yam.c')
-rw-r--r--drivers/net/hamradio/yam.c42
1 files changed, 9 insertions, 33 deletions
diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c
index 5407f7486c9c..be280871e9ac 100644
--- a/drivers/net/hamradio/yam.c
+++ b/drivers/net/hamradio/yam.c
@@ -115,10 +115,6 @@ struct yam_port {
115 115
116 struct net_device *dev; 116 struct net_device *dev;
117 117
118 /* Stats section */
119
120 struct net_device_stats stats;
121
122 int nb_rxint; 118 int nb_rxint;
123 int nb_mdint; 119 int nb_mdint;
124 120
@@ -507,7 +503,7 @@ static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp)
507 } else { 503 } else {
508 if (!(skb = dev_alloc_skb(pkt_len))) { 504 if (!(skb = dev_alloc_skb(pkt_len))) {
509 printk(KERN_WARNING "%s: memory squeeze, dropping packet\n", dev->name); 505 printk(KERN_WARNING "%s: memory squeeze, dropping packet\n", dev->name);
510 ++yp->stats.rx_dropped; 506 ++dev->stats.rx_dropped;
511 } else { 507 } else {
512 unsigned char *cp; 508 unsigned char *cp;
513 cp = skb_put(skb, pkt_len); 509 cp = skb_put(skb, pkt_len);
@@ -515,7 +511,7 @@ static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp)
515 memcpy(cp, yp->rx_buf, pkt_len - 1); 511 memcpy(cp, yp->rx_buf, pkt_len - 1);
516 skb->protocol = ax25_type_trans(skb, dev); 512 skb->protocol = ax25_type_trans(skb, dev);
517 netif_rx(skb); 513 netif_rx(skb);
518 ++yp->stats.rx_packets; 514 ++dev->stats.rx_packets;
519 } 515 }
520 } 516 }
521 } 517 }
@@ -677,7 +673,7 @@ static void yam_tx_byte(struct net_device *dev, struct yam_port *yp)
677 yp->tx_count = 1; 673 yp->tx_count = 1;
678 yp->tx_state = TX_HEAD; 674 yp->tx_state = TX_HEAD;
679 } 675 }
680 ++yp->stats.tx_packets; 676 ++dev->stats.tx_packets;
681 break; 677 break;
682 case TX_TAIL: 678 case TX_TAIL:
683 if (--yp->tx_count <= 0) { 679 if (--yp->tx_count <= 0) {
@@ -716,7 +712,7 @@ static irqreturn_t yam_interrupt(int irq, void *dev_id)
716 handled = 1; 712 handled = 1;
717 713
718 if (lsr & LSR_OE) 714 if (lsr & LSR_OE)
719 ++yp->stats.rx_fifo_errors; 715 ++dev->stats.rx_fifo_errors;
720 716
721 yp->dcd = (msr & RX_DCD) ? 1 : 0; 717 yp->dcd = (msr & RX_DCD) ? 1 : 0;
722 718
@@ -778,11 +774,11 @@ static int yam_seq_show(struct seq_file *seq, void *v)
778 seq_printf(seq, " TxTail %u\n", yp->txtail); 774 seq_printf(seq, " TxTail %u\n", yp->txtail);
779 seq_printf(seq, " SlotTime %u\n", yp->slot); 775 seq_printf(seq, " SlotTime %u\n", yp->slot);
780 seq_printf(seq, " Persist %u\n", yp->pers); 776 seq_printf(seq, " Persist %u\n", yp->pers);
781 seq_printf(seq, " TxFrames %lu\n", yp->stats.tx_packets); 777 seq_printf(seq, " TxFrames %lu\n", dev->stats.tx_packets);
782 seq_printf(seq, " RxFrames %lu\n", yp->stats.rx_packets); 778 seq_printf(seq, " RxFrames %lu\n", dev->stats.rx_packets);
783 seq_printf(seq, " TxInt %u\n", yp->nb_mdint); 779 seq_printf(seq, " TxInt %u\n", yp->nb_mdint);
784 seq_printf(seq, " RxInt %u\n", yp->nb_rxint); 780 seq_printf(seq, " RxInt %u\n", yp->nb_rxint);
785 seq_printf(seq, " RxOver %lu\n", yp->stats.rx_fifo_errors); 781 seq_printf(seq, " RxOver %lu\n", dev->stats.rx_fifo_errors);
786 seq_printf(seq, "\n"); 782 seq_printf(seq, "\n");
787 return 0; 783 return 0;
788} 784}
@@ -812,26 +808,6 @@ static const struct file_operations yam_info_fops = {
812 808
813/* --------------------------------------------------------------------- */ 809/* --------------------------------------------------------------------- */
814 810
815static struct net_device_stats *yam_get_stats(struct net_device *dev)
816{
817 struct yam_port *yp;
818
819 if (!dev)
820 return NULL;
821
822 yp = netdev_priv(dev);
823 if (yp->magic != YAM_MAGIC)
824 return NULL;
825
826 /*
827 * Get the current statistics. This may be called with the
828 * card open or closed.
829 */
830 return &yp->stats;
831}
832
833/* --------------------------------------------------------------------- */
834
835static int yam_open(struct net_device *dev) 811static int yam_open(struct net_device *dev)
836{ 812{
837 struct yam_port *yp = netdev_priv(dev); 813 struct yam_port *yp = netdev_priv(dev);
@@ -878,9 +854,9 @@ static int yam_open(struct net_device *dev)
878 /* Reset overruns for all ports - FPGA programming makes overruns */ 854 /* Reset overruns for all ports - FPGA programming makes overruns */
879 for (i = 0; i < NR_PORTS; i++) { 855 for (i = 0; i < NR_PORTS; i++) {
880 struct net_device *dev = yam_devs[i]; 856 struct net_device *dev = yam_devs[i];
881 struct yam_port *yp = netdev_priv(dev); 857
882 inb(LSR(dev->base_addr)); 858 inb(LSR(dev->base_addr));
883 yp->stats.rx_fifo_errors = 0; 859 dev->stats.rx_fifo_errors = 0;
884 } 860 }
885 861
886 printk(KERN_INFO "%s at iobase 0x%lx irq %u uart %s\n", dev->name, dev->base_addr, dev->irq, 862 printk(KERN_INFO "%s at iobase 0x%lx irq %u uart %s\n", dev->name, dev->base_addr, dev->irq,