Hi All:
   When I test linux kernel(2.6.9-16), I found that maybe there is a bug
in e100 driver. See function e100_rx_indicate() at line 1847:
        nic->net_stats.rx_bytes += actual_size;
Here, actual_size is the actual size of an ethernent frame sans FCS.And
the e100 driver gets it from skb. Because "rx_bytes" is a statistc value
for a NIC, I think rx_bytes should include the FCS(4 bytes).
The following is the patch for the function in e100.c

diff -ruN old/drivers/net/e100.c new/drivers/net/e100.c
--- old/drivers/net/e100.c      2006-03-20 13:53:29.000000000 +0800
+++ new/drivers/net/e100.c      2006-06-15 11:16:04.000000000 +0800
@@ -1844,7 +1844,8 @@
                dev_kfree_skb_any(skb);
        } else {
                nic->net_stats.rx_packets++;
-               nic->net_stats.rx_bytes += actual_size;
+               /* Don't forget FCS */
+               nic->net_stats.rx_bytes += actual_size + 4;
                nic->netdev->last_rx = jiffies;
                netif_receive_skb(skb);
                if(work_done)

BR.
  Weidong

Signed-off-by: Weidong <[EMAIL PROTECTED]>

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to