From: John W. Linville Date: Mon, 12 Sep 2005 14:48:59 +0000 (-0400) Subject: [PATCH] e100: correct rx_dropped and add rx_missed_errors X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=ecf7130b087a9bd1b9d03dbf452630243210d22e;p=openwrt%2Fstaging%2Fblogic.git [PATCH] e100: correct rx_dropped and add rx_missed_errors Do not count non-error frames dropped by the hardware as part of rx_dropped. Instead, count those frames dropped as rx_missed_errors. Also, do not count other error frames as part of rx_dropped. Finally, do not count oversized frames in rx_dropped (since they are counted as part of rx_length_errors). Signed-off-by: John W. Linville Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/e100.c b/drivers/net/e100.c index 25cc20e415da..fbf1c06ec5c1 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c @@ -1387,13 +1387,13 @@ static void e100_update_stats(struct nic *nic) ns->collisions += nic->tx_collisions; ns->tx_errors += le32_to_cpu(s->tx_max_collisions) + le32_to_cpu(s->tx_lost_crs); - ns->rx_dropped += le32_to_cpu(s->rx_resource_errors); ns->rx_length_errors += le32_to_cpu(s->rx_short_frame_errors) + nic->rx_over_length_errors; ns->rx_crc_errors += le32_to_cpu(s->rx_crc_errors); ns->rx_frame_errors += le32_to_cpu(s->rx_alignment_errors); ns->rx_over_errors += le32_to_cpu(s->rx_overrun_errors); ns->rx_fifo_errors += le32_to_cpu(s->rx_overrun_errors); + ns->rx_missed_errors += le32_to_cpu(s->rx_resource_errors); ns->rx_errors += le32_to_cpu(s->rx_crc_errors) + le32_to_cpu(s->rx_alignment_errors) + le32_to_cpu(s->rx_short_frame_errors) + @@ -1727,12 +1727,10 @@ static inline int e100_rx_indicate(struct nic *nic, struct rx *rx, if(unlikely(!(rfd_status & cb_ok))) { /* Don't indicate if hardware indicates errors */ - nic->net_stats.rx_dropped++; dev_kfree_skb_any(skb); } else if(actual_size > ETH_DATA_LEN + VLAN_ETH_HLEN) { /* Don't indicate oversized frames */ nic->rx_over_length_errors++; - nic->net_stats.rx_dropped++; dev_kfree_skb_any(skb); } else { nic->net_stats.rx_packets++;