diff options
Diffstat (limited to 'drivers/net/wan/wanxl.c')
| -rw-r--r-- | drivers/net/wan/wanxl.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c index d4aab8a28b61..a8a5ca0ee6c2 100644 --- a/drivers/net/wan/wanxl.c +++ b/drivers/net/wan/wanxl.c | |||
| @@ -161,7 +161,6 @@ static inline void wanxl_cable_intr(port_t *port) | |||
| 161 | static inline void wanxl_tx_intr(port_t *port) | 161 | static inline void wanxl_tx_intr(port_t *port) |
| 162 | { | 162 | { |
| 163 | struct net_device *dev = port->dev; | 163 | struct net_device *dev = port->dev; |
| 164 | struct net_device_stats *stats = hdlc_stats(dev); | ||
| 165 | while (1) { | 164 | while (1) { |
| 166 | desc_t *desc = &get_status(port)->tx_descs[port->tx_in]; | 165 | desc_t *desc = &get_status(port)->tx_descs[port->tx_in]; |
| 167 | struct sk_buff *skb = port->tx_skbs[port->tx_in]; | 166 | struct sk_buff *skb = port->tx_skbs[port->tx_in]; |
| @@ -173,13 +172,13 @@ static inline void wanxl_tx_intr(port_t *port) | |||
| 173 | return; | 172 | return; |
| 174 | 173 | ||
| 175 | case PACKET_UNDERRUN: | 174 | case PACKET_UNDERRUN: |
| 176 | stats->tx_errors++; | 175 | dev->stats.tx_errors++; |
| 177 | stats->tx_fifo_errors++; | 176 | dev->stats.tx_fifo_errors++; |
| 178 | break; | 177 | break; |
| 179 | 178 | ||
| 180 | default: | 179 | default: |
| 181 | stats->tx_packets++; | 180 | dev->stats.tx_packets++; |
| 182 | stats->tx_bytes += skb->len; | 181 | dev->stats.tx_bytes += skb->len; |
| 183 | } | 182 | } |
| 184 | desc->stat = PACKET_EMPTY; /* Free descriptor */ | 183 | desc->stat = PACKET_EMPTY; /* Free descriptor */ |
| 185 | pci_unmap_single(port->card->pdev, desc->address, skb->len, | 184 | pci_unmap_single(port->card->pdev, desc->address, skb->len, |
| @@ -205,10 +204,9 @@ static inline void wanxl_rx_intr(card_t *card) | |||
| 205 | port_t *port = &card->ports[desc->stat & | 204 | port_t *port = &card->ports[desc->stat & |
| 206 | PACKET_PORT_MASK]; | 205 | PACKET_PORT_MASK]; |
| 207 | struct net_device *dev = port->dev; | 206 | struct net_device *dev = port->dev; |
| 208 | struct net_device_stats *stats = hdlc_stats(dev); | ||
| 209 | 207 | ||
| 210 | if (!skb) | 208 | if (!skb) |
| 211 | stats->rx_dropped++; | 209 | dev->stats.rx_dropped++; |
| 212 | else { | 210 | else { |
| 213 | pci_unmap_single(card->pdev, desc->address, | 211 | pci_unmap_single(card->pdev, desc->address, |
| 214 | BUFFER_LENGTH, | 212 | BUFFER_LENGTH, |
| @@ -220,8 +218,8 @@ static inline void wanxl_rx_intr(card_t *card) | |||
| 220 | skb->len); | 218 | skb->len); |
| 221 | debug_frame(skb); | 219 | debug_frame(skb); |
| 222 | #endif | 220 | #endif |
| 223 | stats->rx_packets++; | 221 | dev->stats.rx_packets++; |
| 224 | stats->rx_bytes += skb->len; | 222 | dev->stats.rx_bytes += skb->len; |
| 225 | dev->last_rx = jiffies; | 223 | dev->last_rx = jiffies; |
| 226 | skb->protocol = hdlc_type_trans(skb, dev); | 224 | skb->protocol = hdlc_type_trans(skb, dev); |
| 227 | netif_rx(skb); | 225 | netif_rx(skb); |
| @@ -468,13 +466,13 @@ static int wanxl_close(struct net_device *dev) | |||
| 468 | 466 | ||
| 469 | static struct net_device_stats *wanxl_get_stats(struct net_device *dev) | 467 | static struct net_device_stats *wanxl_get_stats(struct net_device *dev) |
| 470 | { | 468 | { |
| 471 | struct net_device_stats *stats = hdlc_stats(dev); | ||
| 472 | port_t *port = dev_to_port(dev); | 469 | port_t *port = dev_to_port(dev); |
| 473 | 470 | ||
| 474 | stats->rx_over_errors = get_status(port)->rx_overruns; | 471 | dev->stats.rx_over_errors = get_status(port)->rx_overruns; |
| 475 | stats->rx_frame_errors = get_status(port)->rx_frame_errors; | 472 | dev->stats.rx_frame_errors = get_status(port)->rx_frame_errors; |
| 476 | stats->rx_errors = stats->rx_over_errors + stats->rx_frame_errors; | 473 | dev->stats.rx_errors = dev->stats.rx_over_errors + |
| 477 | return stats; | 474 | dev->stats.rx_frame_errors; |
| 475 | return &dev->stats; | ||
| 478 | } | 476 | } |
| 479 | 477 | ||
| 480 | 478 | ||
