Module Name: src Committed By: msaitoh Date: Thu Feb 4 09:13:23 UTC 2010
Modified Files: src/sys/dev/pci: if_wm.c if_wmreg.h Log Message: - Count Receive error, CRC error, Alignment error, Symbol error, Sequence error, Carrier extension error and Receive length error into ierror. Fixes PR#30349 reported by UMEZAWA Takeshi. - Count Missed packet (rx fifo overflow) and Receive no buffers (rx ring full) into iqdrops. To generate a diff of this commit: cvs rdiff -u -r1.195 -r1.196 src/sys/dev/pci/if_wm.c cvs rdiff -u -r1.35 -r1.36 src/sys/dev/pci/if_wmreg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/if_wm.c diff -u src/sys/dev/pci/if_wm.c:1.195 src/sys/dev/pci/if_wm.c:1.196 --- src/sys/dev/pci/if_wm.c:1.195 Fri Jan 22 08:56:06 2010 +++ src/sys/dev/pci/if_wm.c Thu Feb 4 09:13:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wm.c,v 1.195 2010/01/22 08:56:06 martin Exp $ */ +/* $NetBSD: if_wm.c,v 1.196 2010/02/04 09:13:23 msaitoh Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc. @@ -76,7 +76,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.195 2010/01/22 08:56:06 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.196 2010/02/04 09:13:23 msaitoh Exp $"); #include "rnd.h" @@ -2830,7 +2830,6 @@ */ if (errors & (WRX_ER_CE|WRX_ER_SE|WRX_ER_SEQ|WRX_ER_CXE|WRX_ER_RXE)) { - ifp->if_ierrors++; if (errors & WRX_ER_SE) log(LOG_WARNING, "%s: symbol error\n", device_xname(sc->sc_dev)); @@ -3083,7 +3082,15 @@ } ifp->if_collisions += CSR_READ(sc, WMREG_COLC); - ifp->if_ierrors += CSR_READ(sc, WMREG_RXERRC); + ifp->if_ierrors += 0ULL + /* ensure quad_t */ + + CSR_READ(sc, WMREG_CRCERRS) + + CSR_READ(sc, WMREG_ALGNERRC) + + CSR_READ(sc, WMREG_SYMERRC) + + CSR_READ(sc, WMREG_RXERRC) + + CSR_READ(sc, WMREG_SEC) + + CSR_READ(sc, WMREG_CEXTERR) + + CSR_READ(sc, WMREG_RLEC); + ifp->if_iqdrops += CSR_READ(sc, WMREG_MPC) + CSR_READ(sc, WMREG_RNBC); if (sc->sc_flags & WM_F_HAS_MII) mii_tick(&sc->sc_mii); Index: src/sys/dev/pci/if_wmreg.h diff -u src/sys/dev/pci/if_wmreg.h:1.35 src/sys/dev/pci/if_wmreg.h:1.36 --- src/sys/dev/pci/if_wmreg.h:1.35 Thu Jan 14 18:56:02 2010 +++ src/sys/dev/pci/if_wmreg.h Thu Feb 4 09:13:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wmreg.h,v 1.35 2010/01/14 18:56:02 msaitoh Exp $ */ +/* $NetBSD: if_wmreg.h,v 1.36 2010/02/04 09:13:23 msaitoh Exp $ */ /* * Copyright (c) 2001 Wasabi Systems, Inc. @@ -642,13 +642,21 @@ #define RXCSUM_TUOFL (1U << 9) /* TCP/UDP checksum offload */ #define RXCSUM_IPV6OFL (1U << 10) /* IPv6 checksum offload */ -#define WMREG_RXERRC 0x400C /* receive error Count - R/clr */ +#define WMREG_CRCERRS 0x4000 /* CRC Error Count */ +#define WMREG_ALGNERRC 0x4004 /* Alignment Error Count */ +#define WMREG_SYMERRC 0x4008 /* Symbol Error Count */ +#define WMREG_RXERRC 0x400c /* receive error Count - R/clr */ +#define WMREG_MPC 0x4010 /* Missed Packets Count - R/clr */ #define WMREG_COLC 0x4028 /* collision Count - R/clr */ +#define WMREG_SEC 0x4038 /* Sequence Error Count */ +#define WMREG_CEXTERR 0x403c /* Carrier Extension Error Count */ +#define WMREG_RLEC 0x4040 /* Receive Length Error Count */ #define WMREG_XONRXC 0x4048 /* XON Rx Count - R/clr */ #define WMREG_XONTXC 0x404c /* XON Tx Count - R/clr */ #define WMREG_XOFFRXC 0x4050 /* XOFF Rx Count - R/clr */ #define WMREG_XOFFTXC 0x4054 /* XOFF Tx Count - R/clr */ #define WMREG_FCRUC 0x4058 /* Flow Control Rx Unsupported Count - R/clr */ +#define WMREG_RNBC 0x40a0 /* Receive No Buffers Count */ #define WMREG_KUMCTRLSTA 0x0034 /* MAC-PHY interface - RW */ #define KUMCTRLSTA_MASK 0x0000FFFF