Commit 6a8eba3b authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller

x25_asy: convert to internal net_device_stats

Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3dd20516
...@@ -142,7 +142,7 @@ static int x25_asy_change_mtu(struct net_device *dev, int newmtu) ...@@ -142,7 +142,7 @@ static int x25_asy_change_mtu(struct net_device *dev, int newmtu)
memcpy(sl->xbuff, sl->xhead, sl->xleft); memcpy(sl->xbuff, sl->xhead, sl->xleft);
} else { } else {
sl->xleft = 0; sl->xleft = 0;
sl->stats.tx_dropped++; dev->stats.tx_dropped++;
} }
} }
sl->xhead = sl->xbuff; sl->xhead = sl->xbuff;
...@@ -153,7 +153,7 @@ static int x25_asy_change_mtu(struct net_device *dev, int newmtu) ...@@ -153,7 +153,7 @@ static int x25_asy_change_mtu(struct net_device *dev, int newmtu)
memcpy(sl->rbuff, rbuff, sl->rcount); memcpy(sl->rbuff, rbuff, sl->rcount);
} else { } else {
sl->rcount = 0; sl->rcount = 0;
sl->stats.rx_over_errors++; dev->stats.rx_over_errors++;
set_bit(SLF_ERROR, &sl->flags); set_bit(SLF_ERROR, &sl->flags);
} }
} }
...@@ -188,18 +188,19 @@ static inline void x25_asy_unlock(struct x25_asy *sl) ...@@ -188,18 +188,19 @@ static inline void x25_asy_unlock(struct x25_asy *sl)
static void x25_asy_bump(struct x25_asy *sl) static void x25_asy_bump(struct x25_asy *sl)
{ {
struct net_device *dev = sl->dev;
struct sk_buff *skb; struct sk_buff *skb;
int count; int count;
int err; int err;
count = sl->rcount; count = sl->rcount;
sl->stats.rx_bytes += count; dev->stats.rx_bytes += count;
skb = dev_alloc_skb(count+1); skb = dev_alloc_skb(count+1);
if (skb == NULL) { if (skb == NULL) {
printk(KERN_WARNING "%s: memory squeeze, dropping packet.\n", printk(KERN_WARNING "%s: memory squeeze, dropping packet.\n",
sl->dev->name); sl->dev->name);
sl->stats.rx_dropped++; dev->stats.rx_dropped++;
return; return;
} }
skb_push(skb, 1); /* LAPB internal control */ skb_push(skb, 1); /* LAPB internal control */
...@@ -211,7 +212,7 @@ static void x25_asy_bump(struct x25_asy *sl) ...@@ -211,7 +212,7 @@ static void x25_asy_bump(struct x25_asy *sl)
printk(KERN_DEBUG "x25_asy: data received err - %d\n", err); printk(KERN_DEBUG "x25_asy: data received err - %d\n", err);
} else { } else {
netif_rx(skb); netif_rx(skb);
sl->stats.rx_packets++; dev->stats.rx_packets++;
} }
} }
...@@ -226,7 +227,7 @@ static void x25_asy_encaps(struct x25_asy *sl, unsigned char *icp, int len) ...@@ -226,7 +227,7 @@ static void x25_asy_encaps(struct x25_asy *sl, unsigned char *icp, int len)
len = mtu; len = mtu;
printk(KERN_DEBUG "%s: truncating oversized transmit packet!\n", printk(KERN_DEBUG "%s: truncating oversized transmit packet!\n",
sl->dev->name); sl->dev->name);
sl->stats.tx_dropped++; sl->dev->stats.tx_dropped++;
x25_asy_unlock(sl); x25_asy_unlock(sl);
return; return;
} }
...@@ -266,7 +267,7 @@ static void x25_asy_write_wakeup(struct tty_struct *tty) ...@@ -266,7 +267,7 @@ static void x25_asy_write_wakeup(struct tty_struct *tty)
if (sl->xleft <= 0) { if (sl->xleft <= 0) {
/* Now serial buffer is almost free & we can start /* Now serial buffer is almost free & we can start
* transmission of another packet */ * transmission of another packet */
sl->stats.tx_packets++; sl->dev->stats.tx_packets++;
clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
x25_asy_unlock(sl); x25_asy_unlock(sl);
return; return;
...@@ -383,7 +384,7 @@ static void x25_asy_data_transmit(struct net_device *dev, struct sk_buff *skb) ...@@ -383,7 +384,7 @@ static void x25_asy_data_transmit(struct net_device *dev, struct sk_buff *skb)
/* We were not busy, so we are now... :-) */ /* We were not busy, so we are now... :-) */
if (skb != NULL) { if (skb != NULL) {
x25_asy_lock(sl); x25_asy_lock(sl);
sl->stats.tx_bytes += skb->len; dev->stats.tx_bytes += skb->len;
x25_asy_encaps(sl, skb->data, skb->len); x25_asy_encaps(sl, skb->data, skb->len);
dev_kfree_skb(skb); dev_kfree_skb(skb);
} }
...@@ -533,7 +534,7 @@ static void x25_asy_receive_buf(struct tty_struct *tty, ...@@ -533,7 +534,7 @@ static void x25_asy_receive_buf(struct tty_struct *tty,
while (count--) { while (count--) {
if (fp && *fp++) { if (fp && *fp++) {
if (!test_and_set_bit(SLF_ERROR, &sl->flags)) if (!test_and_set_bit(SLF_ERROR, &sl->flags))
sl->stats.rx_errors++; sl->dev->stats.rx_errors++;
cp++; cp++;
continue; continue;
} }
...@@ -608,14 +609,6 @@ static void x25_asy_close_tty(struct tty_struct *tty) ...@@ -608,14 +609,6 @@ static void x25_asy_close_tty(struct tty_struct *tty)
x25_asy_free(sl); x25_asy_free(sl);
} }
static struct net_device_stats *x25_asy_get_stats(struct net_device *dev)
{
struct x25_asy *sl = netdev_priv(dev);
return &sl->stats;
}
/************************************************************************ /************************************************************************
* STANDARD X.25 ENCAPSULATION * * STANDARD X.25 ENCAPSULATION *
************************************************************************/ ************************************************************************/
...@@ -682,7 +675,7 @@ static void x25_asy_unesc(struct x25_asy *sl, unsigned char s) ...@@ -682,7 +675,7 @@ static void x25_asy_unesc(struct x25_asy *sl, unsigned char s)
sl->rbuff[sl->rcount++] = s; sl->rbuff[sl->rcount++] = s;
return; return;
} }
sl->stats.rx_over_errors++; sl->dev->stats.rx_over_errors++;
set_bit(SLF_ERROR, &sl->flags); set_bit(SLF_ERROR, &sl->flags);
} }
} }
...@@ -739,7 +732,6 @@ static void x25_asy_setup(struct net_device *dev) ...@@ -739,7 +732,6 @@ static void x25_asy_setup(struct net_device *dev)
dev->watchdog_timeo = HZ*20; dev->watchdog_timeo = HZ*20;
dev->open = x25_asy_open_dev; dev->open = x25_asy_open_dev;
dev->stop = x25_asy_close; dev->stop = x25_asy_close;
dev->get_stats = x25_asy_get_stats;
dev->change_mtu = x25_asy_change_mtu; dev->change_mtu = x25_asy_change_mtu;
dev->hard_header_len = 0; dev->hard_header_len = 0;
dev->addr_len = 0; dev->addr_len = 0;
......
...@@ -28,10 +28,6 @@ struct x25_asy { ...@@ -28,10 +28,6 @@ struct x25_asy {
unsigned char *xbuff; /* transmitter buffer */ unsigned char *xbuff; /* transmitter buffer */
unsigned char *xhead; /* pointer to next byte to XMIT */ unsigned char *xhead; /* pointer to next byte to XMIT */
int xleft; /* bytes left in XMIT queue */ int xleft; /* bytes left in XMIT queue */
/* X.25 interface statistics. */
struct net_device_stats stats;
int buffsize; /* Max buffers sizes */ int buffsize; /* Max buffers sizes */
unsigned long flags; /* Flag values/ mode etc */ unsigned long flags; /* Flag values/ mode etc */
......
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