Module Name: src
Committed By: thorpej
Date: Wed Jan 29 05:59:06 UTC 2020
Modified Files:
src/sys/dev/sbus: be.c qe.c
Log Message:
Adopt <net/if_stats.h>.
To generate a diff of this commit:
cvs rdiff -u -r1.94 -r1.95 src/sys/dev/sbus/be.c
cvs rdiff -u -r1.75 -r1.76 src/sys/dev/sbus/qe.c
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/sbus/be.c
diff -u src/sys/dev/sbus/be.c:1.94 src/sys/dev/sbus/be.c:1.95
--- src/sys/dev/sbus/be.c:1.94 Wed May 29 10:07:30 2019
+++ src/sys/dev/sbus/be.c Wed Jan 29 05:59:06 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: be.c,v 1.94 2019/05/29 10:07:30 msaitoh Exp $ */
+/* $NetBSD: be.c,v 1.95 2020/01/29 05:59:06 thorpej Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -57,7 +57,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: be.c,v 1.94 2019/05/29 10:07:30 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: be.c,v 1.95 2020/01/29 05:59:06 thorpej Exp $");
#include "opt_ddb.h"
#include "opt_inet.h"
@@ -550,7 +550,7 @@ be_read(struct be_softc *sc, int idx, in
printf("%s: invalid packet size %d; dropping\n",
ifp->if_xname, len);
#endif
- ifp->if_ierrors++;
+ if_statinc(ifp, if_ierrors);
return;
}
@@ -559,7 +559,7 @@ be_read(struct be_softc *sc, int idx, in
*/
m = be_get(sc, idx, len);
if (m == NULL) {
- ifp->if_ierrors++;
+ if_statinc(ifp, if_ierrors);
return;
}
@@ -686,7 +686,7 @@ bewatchdog(struct ifnet *ifp)
struct be_softc *sc = ifp->if_softc;
log(LOG_ERR, "%s: device timeout\n", device_xname(sc->sc_dev));
- ++sc->sc_ethercom.ec_if.if_oerrors;
+ if_statinc(ifp, if_oerrors);
bereset(sc);
}
@@ -850,11 +850,11 @@ betint(struct be_softc *sc)
/*
* Unload collision counters
*/
- ifp->if_collisions +=
+ if_statadd(ifp, if_collisions,
bus_space_read_4(t, br, BE_BRI_NCCNT) +
bus_space_read_4(t, br, BE_BRI_FCCNT) +
bus_space_read_4(t, br, BE_BRI_EXCNT) +
- bus_space_read_4(t, br, BE_BRI_LTCNT);
+ bus_space_read_4(t, br, BE_BRI_LTCNT));
/*
* the clear the hardware counters
@@ -876,7 +876,7 @@ betint(struct be_softc *sc)
break;
ifp->if_flags &= ~IFF_OACTIVE;
- ifp->if_opackets++;
+ if_statinc(ifp, if_opackets);
if (++bix == QEC_XD_RING_MAXSIZE)
bix = 0;
Index: src/sys/dev/sbus/qe.c
diff -u src/sys/dev/sbus/qe.c:1.75 src/sys/dev/sbus/qe.c:1.76
--- src/sys/dev/sbus/qe.c:1.75 Wed May 29 10:07:30 2019
+++ src/sys/dev/sbus/qe.c Wed Jan 29 05:59:06 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: qe.c,v 1.75 2019/05/29 10:07:30 msaitoh Exp $ */
+/* $NetBSD: qe.c,v 1.76 2020/01/29 05:59:06 thorpej Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: qe.c,v 1.75 2019/05/29 10:07:30 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: qe.c,v 1.76 2020/01/29 05:59:06 thorpej Exp $");
#define QEDEBUG
@@ -406,7 +406,7 @@ qe_read(struct qe_softc *sc, int idx, in
printf("%s: invalid packet size %d; dropping\n",
ifp->if_xname, len);
- ifp->if_ierrors++;
+ if_statinc(ifp, if_ierrors);
return;
}
@@ -415,7 +415,7 @@ qe_read(struct qe_softc *sc, int idx, in
*/
m = qe_get(sc, idx, len);
if (m == NULL) {
- ifp->if_ierrors++;
+ if_statinc(ifp, if_ierrors);
return;
}
@@ -532,7 +532,7 @@ qewatchdog(struct ifnet *ifp)
struct qe_softc *sc = ifp->if_softc;
log(LOG_ERR, "%s: device timeout\n", device_xname(sc->sc_dev));
- ifp->if_oerrors++;
+ if_statinc(ifp, if_oerrors);
qereset(sc);
}
@@ -627,7 +627,7 @@ qe_tint(struct qe_softc *sc)
break;
ifp->if_flags &= ~IFF_OACTIVE;
- ifp->if_opackets++;
+ if_statinc(ifp, if_opackets);
if (++bix == QEC_XD_RING_MAXSIZE)
bix = 0;
@@ -705,21 +705,23 @@ qe_eint(struct qe_softc *sc, uint32_t wh
const char *xname = device_xname(self);
int r = 0, rst = 0;
+ net_stat_ref_t nsr = IF_STAT_GETREF(ifp);
+
if (why & QE_CR_STAT_EDEFER) {
printf("%s: excessive tx defers.\n", xname);
r |= 1;
- ifp->if_oerrors++;
+ if_statinc_ref(nsr, if_oerrors);
}
if (why & QE_CR_STAT_CLOSS) {
printf("%s: no carrier, link down?\n", xname);
- ifp->if_oerrors++;
+ if_statinc_ref(nsr, if_oerrors);
r |= 1;
}
if (why & QE_CR_STAT_ERETRIES) {
printf("%s: excessive tx retries\n", xname);
- ifp->if_oerrors++;
+ if_statinc_ref(nsr, if_oerrors);
r |= 1;
rst = 1;
}
@@ -727,14 +729,14 @@ qe_eint(struct qe_softc *sc, uint32_t wh
if (why & QE_CR_STAT_LCOLL) {
printf("%s: late tx transmission\n", xname);
- ifp->if_oerrors++;
+ if_statinc_ref(nsr, if_oerrors);
r |= 1;
rst = 1;
}
if (why & QE_CR_STAT_FUFLOW) {
printf("%s: tx fifo underflow\n", xname);
- ifp->if_oerrors++;
+ if_statinc_ref(nsr, if_oerrors);
r |= 1;
rst = 1;
}
@@ -750,8 +752,8 @@ qe_eint(struct qe_softc *sc, uint32_t wh
}
if (why & QE_CR_STAT_TCCOFLOW) {
- ifp->if_collisions += 256;
- ifp->if_oerrors += 256;
+ if_statadd_ref(nsr, if_collisions, 256);
+ if_statadd_ref(nsr, if_oerrors, 256);
r |= 1;
}
@@ -763,98 +765,100 @@ qe_eint(struct qe_softc *sc, uint32_t wh
if (why & QE_CR_STAT_TXLERR) {
printf("%s: tx late error\n", xname);
- ifp->if_oerrors++;
+ if_statinc_ref(nsr, if_oerrors);
rst = 1;
r |= 1;
}
if (why & QE_CR_STAT_TXPERR) {
printf("%s: tx DMA parity error\n", xname);
- ifp->if_oerrors++;
+ if_statinc_ref(nsr, if_oerrors);
rst = 1;
r |= 1;
}
if (why & QE_CR_STAT_TXSERR) {
printf("%s: tx DMA sbus error ack\n", xname);
- ifp->if_oerrors++;
+ if_statinc_ref(nsr, if_oerrors);
rst = 1;
r |= 1;
}
if (why & QE_CR_STAT_RCCOFLOW) {
- ifp->if_collisions += 256;
- ifp->if_ierrors += 256;
+ if_statadd_ref(nsr, if_collisions, 256);
+ if_statadd_ref(nsr, if_ierrors, 256);
r |= 1;
}
if (why & QE_CR_STAT_RUOFLOW) {
- ifp->if_ierrors += 256;
+ if_statadd_ref(nsr, if_ierrors, 256);
r |= 1;
}
if (why & QE_CR_STAT_MCOFLOW) {
- ifp->if_ierrors += 256;
+ if_statadd_ref(nsr, if_ierrors, 256);
r |= 1;
}
if (why & QE_CR_STAT_RXFOFLOW) {
printf("%s: rx fifo overflow\n", xname);
- ifp->if_ierrors++;
+ if_statinc_ref(nsr, if_ierrors);
r |= 1;
}
if (why & QE_CR_STAT_RLCOLL) {
printf("%s: rx late collision\n", xname);
- ifp->if_ierrors++;
- ifp->if_collisions++;
+ if_statinc_ref(nsr, if_ierrors);
+ if_statinc_ref(nsr, if_collisions);
r |= 1;
}
if (why & QE_CR_STAT_FCOFLOW) {
- ifp->if_ierrors += 256;
+ if_statadd_ref(nsr, if_ierrors, 256);
r |= 1;
}
if (why & QE_CR_STAT_CECOFLOW) {
- ifp->if_ierrors += 256;
+ if_statadd_ref(nsr, if_ierrors, 256);
r |= 1;
}
if (why & QE_CR_STAT_RXDROP) {
printf("%s: rx packet dropped\n", xname);
- ifp->if_ierrors++;
+ if_statinc_ref(nsr, if_ierrors);
r |= 1;
}
if (why & QE_CR_STAT_RXSMALL) {
printf("%s: rx buffer too small\n", xname);
- ifp->if_ierrors++;
+ if_statinc_ref(nsr, if_ierrors);
r |= 1;
rst = 1;
}
if (why & QE_CR_STAT_RXLERR) {
printf("%s: rx late error\n", xname);
- ifp->if_ierrors++;
+ if_statinc_ref(nsr, if_ierrors);
r |= 1;
rst = 1;
}
if (why & QE_CR_STAT_RXPERR) {
printf("%s: rx DMA parity error\n", xname);
- ifp->if_ierrors++;
+ if_statinc_ref(nsr, if_ierrors);
r |= 1;
rst = 1;
}
if (why & QE_CR_STAT_RXSERR) {
printf("%s: rx DMA sbus error ack\n", xname);
- ifp->if_ierrors++;
+ if_statinc_ref(nsr, if_ierrors);
r |= 1;
rst = 1;
}
+ IF_STAT_PUTREF(ifp);
+
if (r == 0)
aprint_error_dev(self, "unexpected interrupt error: %08x\n",
why);