diff options
| -rw-r--r-- | drivers/net/arm/am79c961a.c | 35 | ||||
| -rw-r--r-- | drivers/net/arm/am79c961a.h | 1 |
2 files changed, 16 insertions, 20 deletions
diff --git a/drivers/net/arm/am79c961a.c b/drivers/net/arm/am79c961a.c index 8c496fb1ac9e..62f21106efec 100644 --- a/drivers/net/arm/am79c961a.c +++ b/drivers/net/arm/am79c961a.c | |||
| @@ -300,8 +300,6 @@ am79c961_open(struct net_device *dev) | |||
| 300 | struct dev_priv *priv = netdev_priv(dev); | 300 | struct dev_priv *priv = netdev_priv(dev); |
| 301 | int ret; | 301 | int ret; |
| 302 | 302 | ||
| 303 | memset (&priv->stats, 0, sizeof (priv->stats)); | ||
| 304 | |||
| 305 | ret = request_irq(dev->irq, am79c961_interrupt, 0, dev->name, dev); | 303 | ret = request_irq(dev->irq, am79c961_interrupt, 0, dev->name, dev); |
| 306 | if (ret) | 304 | if (ret) |
| 307 | return ret; | 305 | return ret; |
| @@ -347,8 +345,7 @@ am79c961_close(struct net_device *dev) | |||
| 347 | */ | 345 | */ |
| 348 | static struct net_device_stats *am79c961_getstats (struct net_device *dev) | 346 | static struct net_device_stats *am79c961_getstats (struct net_device *dev) |
| 349 | { | 347 | { |
| 350 | struct dev_priv *priv = netdev_priv(dev); | 348 | return &dev->stats; |
| 351 | return &priv->stats; | ||
| 352 | } | 349 | } |
| 353 | 350 | ||
| 354 | static void am79c961_mc_hash(char *addr, unsigned short *hash) | 351 | static void am79c961_mc_hash(char *addr, unsigned short *hash) |
| @@ -510,14 +507,14 @@ am79c961_rx(struct net_device *dev, struct dev_priv *priv) | |||
| 510 | 507 | ||
| 511 | if ((status & (RMD_ERR|RMD_STP|RMD_ENP)) != (RMD_STP|RMD_ENP)) { | 508 | if ((status & (RMD_ERR|RMD_STP|RMD_ENP)) != (RMD_STP|RMD_ENP)) { |
| 512 | am_writeword (dev, hdraddr + 2, RMD_OWN); | 509 | am_writeword (dev, hdraddr + 2, RMD_OWN); |
| 513 | priv->stats.rx_errors ++; | 510 | dev->stats.rx_errors++; |
| 514 | if (status & RMD_ERR) { | 511 | if (status & RMD_ERR) { |
| 515 | if (status & RMD_FRAM) | 512 | if (status & RMD_FRAM) |
| 516 | priv->stats.rx_frame_errors ++; | 513 | dev->stats.rx_frame_errors++; |
| 517 | if (status & RMD_CRC) | 514 | if (status & RMD_CRC) |
| 518 | priv->stats.rx_crc_errors ++; | 515 | dev->stats.rx_crc_errors++; |
| 519 | } else if (status & RMD_STP) | 516 | } else if (status & RMD_STP) |
| 520 | priv->stats.rx_length_errors ++; | 517 | dev->stats.rx_length_errors++; |
| 521 | continue; | 518 | continue; |
| 522 | } | 519 | } |
| 523 | 520 | ||
| @@ -531,12 +528,12 @@ am79c961_rx(struct net_device *dev, struct dev_priv *priv) | |||
| 531 | am_writeword(dev, hdraddr + 2, RMD_OWN); | 528 | am_writeword(dev, hdraddr + 2, RMD_OWN); |
| 532 | skb->protocol = eth_type_trans(skb, dev); | 529 | skb->protocol = eth_type_trans(skb, dev); |
| 533 | netif_rx(skb); | 530 | netif_rx(skb); |
| 534 | priv->stats.rx_bytes += len; | 531 | dev->stats.rx_bytes += len; |
| 535 | priv->stats.rx_packets ++; | 532 | dev->stats.rx_packets++; |
| 536 | } else { | 533 | } else { |
| 537 | am_writeword (dev, hdraddr + 2, RMD_OWN); | 534 | am_writeword (dev, hdraddr + 2, RMD_OWN); |
| 538 | printk (KERN_WARNING "%s: memory squeeze, dropping packet.\n", dev->name); | 535 | printk (KERN_WARNING "%s: memory squeeze, dropping packet.\n", dev->name); |
| 539 | priv->stats.rx_dropped ++; | 536 | dev->stats.rx_dropped++; |
| 540 | break; | 537 | break; |
| 541 | } | 538 | } |
| 542 | } while (1); | 539 | } while (1); |
| @@ -565,7 +562,7 @@ am79c961_tx(struct net_device *dev, struct dev_priv *priv) | |||
| 565 | if (status & TMD_ERR) { | 562 | if (status & TMD_ERR) { |
| 566 | u_int status2; | 563 | u_int status2; |
| 567 | 564 | ||
| 568 | priv->stats.tx_errors ++; | 565 | dev->stats.tx_errors++; |
| 569 | 566 | ||
| 570 | status2 = am_readword (dev, hdraddr + 6); | 567 | status2 = am_readword (dev, hdraddr + 6); |
| 571 | 568 | ||
| @@ -575,18 +572,18 @@ am79c961_tx(struct net_device *dev, struct dev_priv *priv) | |||
| 575 | am_writeword (dev, hdraddr + 6, 0); | 572 | am_writeword (dev, hdraddr + 6, 0); |
| 576 | 573 | ||
| 577 | if (status2 & TST_RTRY) | 574 | if (status2 & TST_RTRY) |
| 578 | priv->stats.collisions += 16; | 575 | dev->stats.collisions += 16; |
| 579 | if (status2 & TST_LCOL) | 576 | if (status2 & TST_LCOL) |
| 580 | priv->stats.tx_window_errors ++; | 577 | dev->stats.tx_window_errors++; |
| 581 | if (status2 & TST_LCAR) | 578 | if (status2 & TST_LCAR) |
| 582 | priv->stats.tx_carrier_errors ++; | 579 | dev->stats.tx_carrier_errors++; |
| 583 | if (status2 & TST_UFLO) | 580 | if (status2 & TST_UFLO) |
| 584 | priv->stats.tx_fifo_errors ++; | 581 | dev->stats.tx_fifo_errors++; |
| 585 | continue; | 582 | continue; |
| 586 | } | 583 | } |
| 587 | priv->stats.tx_packets ++; | 584 | dev->stats.tx_packets++; |
| 588 | len = am_readword (dev, hdraddr + 4); | 585 | len = am_readword (dev, hdraddr + 4); |
| 589 | priv->stats.tx_bytes += -len; | 586 | dev->stats.tx_bytes += -len; |
| 590 | } while (priv->txtail != priv->txhead); | 587 | } while (priv->txtail != priv->txhead); |
| 591 | 588 | ||
| 592 | netif_wake_queue(dev); | 589 | netif_wake_queue(dev); |
| @@ -616,7 +613,7 @@ am79c961_interrupt(int irq, void *dev_id) | |||
| 616 | } | 613 | } |
| 617 | if (status & CSR0_MISS) { | 614 | if (status & CSR0_MISS) { |
| 618 | handled = 1; | 615 | handled = 1; |
| 619 | priv->stats.rx_dropped ++; | 616 | dev->stats.rx_dropped++; |
| 620 | } | 617 | } |
| 621 | if (status & CSR0_CERR) { | 618 | if (status & CSR0_CERR) { |
| 622 | handled = 1; | 619 | handled = 1; |
diff --git a/drivers/net/arm/am79c961a.h b/drivers/net/arm/am79c961a.h index 483009fe6ec2..fd634d32756b 100644 --- a/drivers/net/arm/am79c961a.h +++ b/drivers/net/arm/am79c961a.h | |||
| @@ -130,7 +130,6 @@ | |||
| 130 | #define ISALED0_LNKST 0x8000 | 130 | #define ISALED0_LNKST 0x8000 |
| 131 | 131 | ||
| 132 | struct dev_priv { | 132 | struct dev_priv { |
| 133 | struct net_device_stats stats; | ||
| 134 | unsigned long rxbuffer[RX_BUFFERS]; | 133 | unsigned long rxbuffer[RX_BUFFERS]; |
| 135 | unsigned long txbuffer[TX_BUFFERS]; | 134 | unsigned long txbuffer[TX_BUFFERS]; |
| 136 | unsigned char txhead; | 135 | unsigned char txhead; |
