[PATCH] mpc52xx: Correct calculation of FEC RX errors.

Grzegorz Bernacki gjb at semihalf.com
Fri May 25 08:01:24 EST 2007


'ifconfig eth0' command for mpc5200B-based cards shows error for RX.
However none of RX MIB counters is set to value greater than zero.
Number of errors is equal to number of multicast packet. In linux 2.4
calculation of RX errors is slightly different and takes into account
number of multicast packet. This change is a port of calculation method
of RX errors for FEC controller from linux 2.4 to 2.6.

Signed-off-by: Grzegorz Bernacki <gjb at semihalf.com>
---

 drivers/net/fec_mpc52xx/fec.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/net/fec_mpc52xx/fec.c b/drivers/net/fec_mpc52xx/fec.c
index f0ce87e..d2087f6 100644
--- a/drivers/net/fec_mpc52xx/fec.c
+++ b/drivers/net/fec_mpc52xx/fec.c
@@ -395,7 +395,9 @@ static struct net_device_stats *fec_get_stats(struct
net_device *dev)

        stats->rx_bytes = in_be32(&fec->rmon_r_octets);
        stats->rx_packets = in_be32(&fec->rmon_r_packets);
-       stats->rx_errors = stats->rx_packets -
in_be32(&fec->ieee_r_frame_ok);
+       stats->rx_errors = stats->rx_packets - (
+                       in_be32(&fec->ieee_r_frame_ok) +
+                       in_be32(&fec->rmon_r_mc_pkt));
        stats->tx_bytes = in_be32(&fec->rmon_t_octets);
        stats->tx_packets = in_be32(&fec->rmon_t_packets);
        stats->tx_errors = stats->tx_packets - (




More information about the Linuxppc-embedded mailing list