Loading drivers/net/cs89x0.c +36 −30 Original line number Diff line number Diff line Loading @@ -218,7 +218,6 @@ static unsigned int net_debug = DEBUGGING; /* Information that need to be kept for each board. */ struct net_local { struct net_device_stats stats; int chip_type; /* one of: CS8900, CS8920, CS8920M */ char chip_revision; /* revision letter of the chip ('A'...) */ int send_cmd; /* the proper send command: TX_NOW, TX_AFTER_381, or TX_AFTER_ALL */ Loading Loading @@ -257,7 +256,7 @@ static void reset_chip(struct net_device *dev); static int get_eeprom_data(struct net_device *dev, int off, int len, int *buffer); static int get_eeprom_cksum(int off, int len, int *buffer); static int set_mac_address(struct net_device *dev, void *addr); static void count_rx_errors(int status, struct net_local *lp); static void count_rx_errors(int status, struct net_device *dev); #ifdef CONFIG_NET_POLL_CONTROLLER static void net_poll_controller(struct net_device *dev); #endif Loading Loading @@ -983,7 +982,7 @@ dma_rx(struct net_device *dev) dev->name, (unsigned long)bp, status, length); } if ((status & RX_OK) == 0) { count_rx_errors(status, lp); count_rx_errors(status, dev); goto skip_this_frame; } Loading @@ -992,7 +991,7 @@ dma_rx(struct net_device *dev) if (skb == NULL) { if (net_debug) /* I don't think we want to do this to a stressed system */ printk("%s: Memory squeeze, dropping packet.\n", dev->name); lp->stats.rx_dropped++; dev->stats.rx_dropped++; /* AKPM: advance bp to the next frame */ skip_this_frame: Loading Loading @@ -1022,8 +1021,8 @@ dma_rx(struct net_device *dev) } skb->protocol=eth_type_trans(skb,dev); netif_rx(skb); lp->stats.rx_packets++; lp->stats.rx_bytes += length; dev->stats.rx_packets++; dev->stats.rx_bytes += length; } #endif /* ALLOW_DMA */ Loading Loading @@ -1552,7 +1551,7 @@ static netdev_tx_t net_send_packet(struct sk_buff *skb,struct net_device *dev) /* Write the contents of the packet */ writewords(dev->base_addr, TX_FRAME_PORT,skb->data,(skb->len+1) >>1); spin_unlock_irqrestore(&lp->lock, flags); lp->stats.tx_bytes += skb->len; dev->stats.tx_bytes += skb->len; dev_kfree_skb (skb); /* Loading Loading @@ -1598,18 +1597,23 @@ static irqreturn_t net_interrupt(int irq, void *dev_id) net_rx(dev); break; case ISQ_TRANSMITTER_EVENT: lp->stats.tx_packets++; dev->stats.tx_packets++; netif_wake_queue(dev); /* Inform upper layers. */ if ((status & ( TX_OK | TX_LOST_CRS | TX_SQE_ERROR | TX_LATE_COL | TX_16_COL)) != TX_OK) { if ((status & TX_OK) == 0) lp->stats.tx_errors++; if (status & TX_LOST_CRS) lp->stats.tx_carrier_errors++; if (status & TX_SQE_ERROR) lp->stats.tx_heartbeat_errors++; if (status & TX_LATE_COL) lp->stats.tx_window_errors++; if (status & TX_16_COL) lp->stats.tx_aborted_errors++; if ((status & TX_OK) == 0) dev->stats.tx_errors++; if (status & TX_LOST_CRS) dev->stats.tx_carrier_errors++; if (status & TX_SQE_ERROR) dev->stats.tx_heartbeat_errors++; if (status & TX_LATE_COL) dev->stats.tx_window_errors++; if (status & TX_16_COL) dev->stats.tx_aborted_errors++; } break; case ISQ_BUFFER_EVENT: Loading Loading @@ -1651,10 +1655,10 @@ static irqreturn_t net_interrupt(int irq, void *dev_id) #endif break; case ISQ_RX_MISS_EVENT: lp->stats.rx_missed_errors += (status >>6); dev->stats.rx_missed_errors += (status >> 6); break; case ISQ_TX_COL_EVENT: lp->stats.collisions += (status >>6); dev->stats.collisions += (status >> 6); break; } } Loading @@ -1662,22 +1666,24 @@ static irqreturn_t net_interrupt(int irq, void *dev_id) } static void count_rx_errors(int status, struct net_local *lp) count_rx_errors(int status, struct net_device *dev) { lp->stats.rx_errors++; if (status & RX_RUNT) lp->stats.rx_length_errors++; if (status & RX_EXTRA_DATA) lp->stats.rx_length_errors++; if (status & RX_CRC_ERROR) if (!(status & (RX_EXTRA_DATA|RX_RUNT))) dev->stats.rx_errors++; if (status & RX_RUNT) dev->stats.rx_length_errors++; if (status & RX_EXTRA_DATA) dev->stats.rx_length_errors++; if ((status & RX_CRC_ERROR) && !(status & (RX_EXTRA_DATA|RX_RUNT))) /* per str 172 */ lp->stats.rx_crc_errors++; if (status & RX_DRIBBLE) lp->stats.rx_frame_errors++; dev->stats.rx_crc_errors++; if (status & RX_DRIBBLE) dev->stats.rx_frame_errors++; } /* We have a good packet(s), get it/them out of the buffers. */ static void net_rx(struct net_device *dev) { struct net_local *lp = netdev_priv(dev); struct sk_buff *skb; int status, length; Loading @@ -1686,7 +1692,7 @@ net_rx(struct net_device *dev) length = readword(ioaddr, RX_FRAME_PORT); if ((status & RX_OK) == 0) { count_rx_errors(status, lp); count_rx_errors(status, dev); return; } Loading @@ -1696,7 +1702,7 @@ net_rx(struct net_device *dev) #if 0 /* Again, this seems a cruel thing to do */ printk(KERN_WARNING "%s: Memory squeeze, dropping packet.\n", dev->name); #endif lp->stats.rx_dropped++; dev->stats.rx_dropped++; return; } skb_reserve(skb, 2); /* longword align L3 header */ Loading @@ -1713,8 +1719,8 @@ net_rx(struct net_device *dev) skb->protocol=eth_type_trans(skb,dev); netif_rx(skb); lp->stats.rx_packets++; lp->stats.rx_bytes += length; dev->stats.rx_packets++; dev->stats.rx_bytes += length; } #if ALLOW_DMA Loading Loading @@ -1765,11 +1771,11 @@ net_get_stats(struct net_device *dev) spin_lock_irqsave(&lp->lock, flags); /* Update the statistics from the device registers. */ lp->stats.rx_missed_errors += (readreg(dev, PP_RxMiss) >> 6); lp->stats.collisions += (readreg(dev, PP_TxCol) >> 6); dev->stats.rx_missed_errors += (readreg(dev, PP_RxMiss) >> 6); dev->stats.collisions += (readreg(dev, PP_TxCol) >> 6); spin_unlock_irqrestore(&lp->lock, flags); return &lp->stats; return &dev->stats; } static void set_multicast_list(struct net_device *dev) Loading Loading
drivers/net/cs89x0.c +36 −30 Original line number Diff line number Diff line Loading @@ -218,7 +218,6 @@ static unsigned int net_debug = DEBUGGING; /* Information that need to be kept for each board. */ struct net_local { struct net_device_stats stats; int chip_type; /* one of: CS8900, CS8920, CS8920M */ char chip_revision; /* revision letter of the chip ('A'...) */ int send_cmd; /* the proper send command: TX_NOW, TX_AFTER_381, or TX_AFTER_ALL */ Loading Loading @@ -257,7 +256,7 @@ static void reset_chip(struct net_device *dev); static int get_eeprom_data(struct net_device *dev, int off, int len, int *buffer); static int get_eeprom_cksum(int off, int len, int *buffer); static int set_mac_address(struct net_device *dev, void *addr); static void count_rx_errors(int status, struct net_local *lp); static void count_rx_errors(int status, struct net_device *dev); #ifdef CONFIG_NET_POLL_CONTROLLER static void net_poll_controller(struct net_device *dev); #endif Loading Loading @@ -983,7 +982,7 @@ dma_rx(struct net_device *dev) dev->name, (unsigned long)bp, status, length); } if ((status & RX_OK) == 0) { count_rx_errors(status, lp); count_rx_errors(status, dev); goto skip_this_frame; } Loading @@ -992,7 +991,7 @@ dma_rx(struct net_device *dev) if (skb == NULL) { if (net_debug) /* I don't think we want to do this to a stressed system */ printk("%s: Memory squeeze, dropping packet.\n", dev->name); lp->stats.rx_dropped++; dev->stats.rx_dropped++; /* AKPM: advance bp to the next frame */ skip_this_frame: Loading Loading @@ -1022,8 +1021,8 @@ dma_rx(struct net_device *dev) } skb->protocol=eth_type_trans(skb,dev); netif_rx(skb); lp->stats.rx_packets++; lp->stats.rx_bytes += length; dev->stats.rx_packets++; dev->stats.rx_bytes += length; } #endif /* ALLOW_DMA */ Loading Loading @@ -1552,7 +1551,7 @@ static netdev_tx_t net_send_packet(struct sk_buff *skb,struct net_device *dev) /* Write the contents of the packet */ writewords(dev->base_addr, TX_FRAME_PORT,skb->data,(skb->len+1) >>1); spin_unlock_irqrestore(&lp->lock, flags); lp->stats.tx_bytes += skb->len; dev->stats.tx_bytes += skb->len; dev_kfree_skb (skb); /* Loading Loading @@ -1598,18 +1597,23 @@ static irqreturn_t net_interrupt(int irq, void *dev_id) net_rx(dev); break; case ISQ_TRANSMITTER_EVENT: lp->stats.tx_packets++; dev->stats.tx_packets++; netif_wake_queue(dev); /* Inform upper layers. */ if ((status & ( TX_OK | TX_LOST_CRS | TX_SQE_ERROR | TX_LATE_COL | TX_16_COL)) != TX_OK) { if ((status & TX_OK) == 0) lp->stats.tx_errors++; if (status & TX_LOST_CRS) lp->stats.tx_carrier_errors++; if (status & TX_SQE_ERROR) lp->stats.tx_heartbeat_errors++; if (status & TX_LATE_COL) lp->stats.tx_window_errors++; if (status & TX_16_COL) lp->stats.tx_aborted_errors++; if ((status & TX_OK) == 0) dev->stats.tx_errors++; if (status & TX_LOST_CRS) dev->stats.tx_carrier_errors++; if (status & TX_SQE_ERROR) dev->stats.tx_heartbeat_errors++; if (status & TX_LATE_COL) dev->stats.tx_window_errors++; if (status & TX_16_COL) dev->stats.tx_aborted_errors++; } break; case ISQ_BUFFER_EVENT: Loading Loading @@ -1651,10 +1655,10 @@ static irqreturn_t net_interrupt(int irq, void *dev_id) #endif break; case ISQ_RX_MISS_EVENT: lp->stats.rx_missed_errors += (status >>6); dev->stats.rx_missed_errors += (status >> 6); break; case ISQ_TX_COL_EVENT: lp->stats.collisions += (status >>6); dev->stats.collisions += (status >> 6); break; } } Loading @@ -1662,22 +1666,24 @@ static irqreturn_t net_interrupt(int irq, void *dev_id) } static void count_rx_errors(int status, struct net_local *lp) count_rx_errors(int status, struct net_device *dev) { lp->stats.rx_errors++; if (status & RX_RUNT) lp->stats.rx_length_errors++; if (status & RX_EXTRA_DATA) lp->stats.rx_length_errors++; if (status & RX_CRC_ERROR) if (!(status & (RX_EXTRA_DATA|RX_RUNT))) dev->stats.rx_errors++; if (status & RX_RUNT) dev->stats.rx_length_errors++; if (status & RX_EXTRA_DATA) dev->stats.rx_length_errors++; if ((status & RX_CRC_ERROR) && !(status & (RX_EXTRA_DATA|RX_RUNT))) /* per str 172 */ lp->stats.rx_crc_errors++; if (status & RX_DRIBBLE) lp->stats.rx_frame_errors++; dev->stats.rx_crc_errors++; if (status & RX_DRIBBLE) dev->stats.rx_frame_errors++; } /* We have a good packet(s), get it/them out of the buffers. */ static void net_rx(struct net_device *dev) { struct net_local *lp = netdev_priv(dev); struct sk_buff *skb; int status, length; Loading @@ -1686,7 +1692,7 @@ net_rx(struct net_device *dev) length = readword(ioaddr, RX_FRAME_PORT); if ((status & RX_OK) == 0) { count_rx_errors(status, lp); count_rx_errors(status, dev); return; } Loading @@ -1696,7 +1702,7 @@ net_rx(struct net_device *dev) #if 0 /* Again, this seems a cruel thing to do */ printk(KERN_WARNING "%s: Memory squeeze, dropping packet.\n", dev->name); #endif lp->stats.rx_dropped++; dev->stats.rx_dropped++; return; } skb_reserve(skb, 2); /* longword align L3 header */ Loading @@ -1713,8 +1719,8 @@ net_rx(struct net_device *dev) skb->protocol=eth_type_trans(skb,dev); netif_rx(skb); lp->stats.rx_packets++; lp->stats.rx_bytes += length; dev->stats.rx_packets++; dev->stats.rx_bytes += length; } #if ALLOW_DMA Loading Loading @@ -1765,11 +1771,11 @@ net_get_stats(struct net_device *dev) spin_lock_irqsave(&lp->lock, flags); /* Update the statistics from the device registers. */ lp->stats.rx_missed_errors += (readreg(dev, PP_RxMiss) >> 6); lp->stats.collisions += (readreg(dev, PP_TxCol) >> 6); dev->stats.rx_missed_errors += (readreg(dev, PP_RxMiss) >> 6); dev->stats.collisions += (readreg(dev, PP_TxCol) >> 6); spin_unlock_irqrestore(&lp->lock, flags); return &lp->stats; return &dev->stats; } static void set_multicast_list(struct net_device *dev) Loading