Module Name:    src
Committed By:   thorpej
Date:           Wed Jan 29 06:05:31 UTC 2020

Modified Files:
        src/sys/arch/arm/imx: if_enet.c
        src/sys/arch/arm/sunxi: sun4i_emac.c sunxi_can.c sunxi_emac.c
        src/sys/arch/arm/ti: if_cpsw.c
        src/sys/arch/arm/xscale: ixp425_if_npe.c

Log Message:
Adopt <net/if_stats.h>.


To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/sys/arch/arm/imx/if_enet.c
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/sunxi/sun4i_emac.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/sunxi/sunxi_can.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/arm/sunxi/sunxi_emac.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/ti/if_cpsw.c
cvs rdiff -u -r1.44 -r1.45 src/sys/arch/arm/xscale/ixp425_if_npe.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/arch/arm/imx/if_enet.c
diff -u src/sys/arch/arm/imx/if_enet.c:1.30 src/sys/arch/arm/imx/if_enet.c:1.31
--- src/sys/arch/arm/imx/if_enet.c:1.30	Wed Jan 15 01:09:56 2020
+++ src/sys/arch/arm/imx/if_enet.c	Wed Jan 29 06:05:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_enet.c,v 1.30 2020/01/15 01:09:56 jmcneill Exp $	*/
+/*	$NetBSD: if_enet.c,v 1.31 2020/01/29 06:05:31 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2014 Ryo Shimizu <[email protected]>
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_enet.c,v 1.30 2020/01/15 01:09:56 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_enet.c,v 1.31 2020/01/29 06:05:31 thorpej Exp $");
 
 #include "vlan.h"
 
@@ -381,9 +381,10 @@ enet_tick(void *arg)
 #endif
 
 	/* update counters */
-	ifp->if_ierrors += ENET_REG_READ(sc, ENET_RMON_R_UNDERSIZE);
-	ifp->if_ierrors += ENET_REG_READ(sc, ENET_RMON_R_FRAG);
-	ifp->if_ierrors += ENET_REG_READ(sc, ENET_RMON_R_JAB);
+	if_statadd(ifp, if_ierrors,
+	    (uint64_t)ENET_REG_READ(sc, ENET_RMON_R_UNDERSIZE) +
+	    (uint64_t)ENET_REG_READ(sc, ENET_RMON_R_FRAG) +
+	    (uint64_t)ENET_REG_READ(sc, ENET_RMON_R_JAB));
 
 	/* clear counters */
 	ENET_REG_WRITE(sc, ENET_MIBC, ENET_MIBC_MIB_CLEAR);
@@ -461,7 +462,7 @@ enet_tx_intr(void *arg)
 			bus_dmamap_unload(sc->sc_dmat,
 			    txs->txs_dmamap);
 			m_freem(txs->txs_mbuf);
-			ifp->if_opackets++;
+			if_statinc(ifp, if_opackets);
 		}
 
 		/* checking error */
@@ -488,7 +489,7 @@ enet_tx_intr(void *arg)
 					    "flags2=%s\n", idx, flagsbuf);
 				}
 #endif /* DEBUG_ENET */
-				ifp->if_oerrors++;
+				if_statinc(ifp, if_oerrors);
 			}
 		}
 
@@ -589,7 +590,7 @@ enet_rx_intr(void *arg)
 					    idx, flags1buf, flags2buf, amount);
 				}
 #endif /* DEBUG_ENET */
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				m_freem(m0);
 
 			} else {
@@ -873,7 +874,7 @@ enet_start(struct ifnet *ifp)
 			DEVICE_DPRINTF(
 			    "TX descriptor is full. dropping packet\n");
 			m_freem(m);
-			ifp->if_oerrors++;
+			if_statinc(ifp, if_oerrors);
 			break;
 		}
 
@@ -929,7 +930,7 @@ enet_watchdog(struct ifnet *ifp)
 	s = splnet();
 
 	device_printf(sc->sc_dev, "watchdog timeout\n");
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 
 	/* salvage packets left in descriptors */
 	enet_tx_intr(sc);
@@ -1322,7 +1323,7 @@ enet_drain_txbuf(struct enet_softc *sc)
 			    txs->txs_dmamap);
 			m_freem(txs->txs_mbuf);
 
-			ifp->if_oerrors++;
+			if_statinc(ifp, if_oerrors);
 		}
 		sc->sc_tx_free++;
 	}

Index: src/sys/arch/arm/sunxi/sun4i_emac.c
diff -u src/sys/arch/arm/sunxi/sun4i_emac.c:1.11 src/sys/arch/arm/sunxi/sun4i_emac.c:1.12
--- src/sys/arch/arm/sunxi/sun4i_emac.c:1.11	Tue May 28 07:41:46 2019
+++ src/sys/arch/arm/sunxi/sun4i_emac.c	Wed Jan 29 06:05:31 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: sun4i_emac.c,v 1.11 2019/05/28 07:41:46 msaitoh Exp $ */
+/* $NetBSD: sun4i_emac.c,v 1.12 2020/01/29 06:05:31 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2013-2017 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: sun4i_emac.c,v 1.11 2019/05/28 07:41:46 msaitoh Exp $");
+__KERNEL_RCSID(1, "$NetBSD: sun4i_emac.c,v 1.12 2020/01/29 06:05:31 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -569,13 +569,13 @@ sun4i_emac_rx_intr(struct sun4i_emac_sof
 		uint32_t rxsts = __SHIFTOUT(rxhdr, EMAC_RXHDR_STS);
 
 		if (rxlen < ETHER_MIN_LEN || (rxsts & EMAC_RX_STA_PKTOK) == 0) {
-			sc->sc_ec.ec_if.if_ierrors++;
+			if_statinc(&sc->sc_ec.ec_if, if_ierrors);
 			continue;
 		}
 
 		m = sun4i_emac_mgethdr(sc, rxlen);
 		if (m == NULL) {
-			sc->sc_ec.ec_if.if_ierrors++;
+			if_statinc(&sc->sc_ec.ec_if, if_ierrors);
 			sun4i_emac_rxfifo_consume(sc, rxlen);
 			return;
 		}
@@ -831,7 +831,7 @@ sun4i_emac_ifwatchdog(struct ifnet *ifp)
 
 	device_printf(sc->sc_dev, "device timeout\n");
 
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 	sun4i_emac_ifinit(ifp);
 	sun4i_emac_ifstart(ifp);
 }

Index: src/sys/arch/arm/sunxi/sunxi_can.c
diff -u src/sys/arch/arm/sunxi/sunxi_can.c:1.2 src/sys/arch/arm/sunxi/sunxi_can.c:1.3
--- src/sys/arch/arm/sunxi/sunxi_can.c:1.2	Mon Oct 21 08:00:58 2019
+++ src/sys/arch/arm/sunxi/sunxi_can.c	Wed Jan 29 06:05:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunxi_can.c,v 1.2 2019/10/21 08:00:58 msaitoh Exp $	*/
+/*	$NetBSD: sunxi_can.c,v 1.3 2020/01/29 06:05:31 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2017,2018 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: sunxi_can.c,v 1.2 2019/10/21 08:00:58 msaitoh Exp $");
+__KERNEL_RCSID(1, "$NetBSD: sunxi_can.c,v 1.3 2020/01/29 06:05:31 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -253,14 +253,14 @@ sunxi_can_rx_intr(struct sunxi_can_softc
 	dlc = reg0v & SUNXI_CAN_TXBUF0_DL;
 
 	if (dlc > CAN_MAX_DLC) {
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		sunxi_can_write(sc, SUNXI_CAN_CMD_REG, SUNXI_CAN_CMD_REL_RX_BUF);
 		return;
 	}
 		
 	m = m_gethdr(M_NOWAIT, MT_HEADER);
 	if (m == NULL) {
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		sunxi_can_write(sc, SUNXI_CAN_CMD_REG, SUNXI_CAN_CMD_REL_RX_BUF);
 		return;
 	}
@@ -292,7 +292,7 @@ sunxi_can_rx_intr(struct sunxi_can_softc
 	}
 	sunxi_can_write(sc, SUNXI_CAN_CMD_REG, SUNXI_CAN_CMD_REL_RX_BUF);
 	m->m_len = m->m_pkthdr.len = CAN_MTU;
-	ifp->if_ibytes += m->m_len;
+	if_statadd(ifp, if_ibytes, m->m_len);
 	m_set_rcvif(m, ifp);
 	can_bpf_mtap(ifp, m, 1);
 	can_input(ifp, m);
@@ -306,8 +306,7 @@ sunxi_can_tx_intr(struct sunxi_can_softc
 
 	KASSERT(mutex_owned(&sc->sc_intr_lock));
 	if ((m = sc->sc_m_transmit) != NULL) {
-		ifp->if_obytes += m->m_len;
-		ifp->if_opackets++;
+		if_statadd2(ifp, if_obytes, m->m_len, if_opackets, 1);
 		can_mbuf_tag_clean(m);
 		m_set_rcvif(m, ifp);
 		can_input(ifp, m); /* loopback */
@@ -346,7 +345,7 @@ sunxi_can_err_intr(struct sunxi_can_soft
 	uint32_t reg;
 
 	if (irq & SUNXI_CAN_INT_DATA_OR) {
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		sunxi_can_write(sc, SUNXI_CAN_CMD_REG, SUNXI_CAN_CMD_CLR_OR);
 	}
 	if (irq & SUNXI_CAN_INT_ERR) {
@@ -359,7 +358,7 @@ sunxi_can_err_intr(struct sunxi_can_soft
 		if (sts & SUNXI_CAN_STA_TX)
 			txerr++;
 		if (sts & SUNXI_CAN_STA_RX)
-			ifp->if_ierrors++;
+			if_statinc(ifp, if_ierrors);
 	}
 	if (irq & SUNXI_CAN_INT_ERR_PASSIVE) {
 		printf("%s: PASSV interrupt status 0x%x\n",
@@ -369,7 +368,7 @@ sunxi_can_err_intr(struct sunxi_can_soft
 		txerr++;
 	}
 	if (txerr) {
-		ifp->if_oerrors += txerr;
+		if_statadd(ifp, if_oerrors, txerr);
 		(void) sunxi_can_tx_abort(sc);
 	}
 }
@@ -603,7 +602,7 @@ sunxi_can_ifwatchdog(struct ifnet *ifp)
 	    sunxi_can_read(sc, SUNXI_CAN_REC_REG));
 	/* if there is a transmit in progress abort */
 	if (sunxi_can_tx_abort(sc)) {
-		ifp->if_oerrors++;
+		if_statinc(ifp, if_oerrors);
 	}
 	mutex_exit(&sc->sc_intr_lock);
 }

Index: src/sys/arch/arm/sunxi/sunxi_emac.c
diff -u src/sys/arch/arm/sunxi/sunxi_emac.c:1.28 src/sys/arch/arm/sunxi/sunxi_emac.c:1.29
--- src/sys/arch/arm/sunxi/sunxi_emac.c:1.28	Sat Jul 13 21:56:23 2019
+++ src/sys/arch/arm/sunxi/sunxi_emac.c	Wed Jan 29 06:05:31 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_emac.c,v 1.28 2019/07/13 21:56:23 thorpej Exp $ */
+/* $NetBSD: sunxi_emac.c,v 1.29 2020/01/29 06:05:31 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2016-2017 Jared McNeill <[email protected]>
@@ -33,7 +33,7 @@
 #include "opt_net_mpsafe.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_emac.c,v 1.28 2019/07/13 21:56:23 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_emac.c,v 1.29 2020/01/29 06:05:31 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -828,7 +828,7 @@ sunxi_emac_rxintr(struct sunxi_emac_soft
 				/* XXX hole in RX ring */
 			}
 		} else
-			ifp->if_ierrors++;
+			if_statinc(ifp, if_ierrors);
 
 		sunxi_emac_dma_sync(sc, sc->rx.desc_tag, sc->rx.desc_map,
 		    index, index + 1,
@@ -876,7 +876,7 @@ sunxi_emac_txintr(struct sunxi_emac_soft
 		    BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
 
 		ifp->if_flags &= ~IFF_OACTIVE;
-		ifp->if_opackets++;
+		if_statinc(ifp, if_opackets);
 	}
 
 	sc->tx.next = i;

Index: src/sys/arch/arm/ti/if_cpsw.c
diff -u src/sys/arch/arm/ti/if_cpsw.c:1.10 src/sys/arch/arm/ti/if_cpsw.c:1.11
--- src/sys/arch/arm/ti/if_cpsw.c:1.10	Mon Jan  6 06:50:00 2020
+++ src/sys/arch/arm/ti/if_cpsw.c	Wed Jan 29 06:05:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_cpsw.c,v 1.10 2020/01/06 06:50:00 msaitoh Exp $	*/
+/*	$NetBSD: if_cpsw.c,v 1.11 2020/01/29 06:05:31 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2013 Jonathan A. Kollasch
@@ -53,7 +53,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: if_cpsw.c,v 1.10 2020/01/06 06:50:00 msaitoh Exp $");
+__KERNEL_RCSID(1, "$NetBSD: if_cpsw.c,v 1.11 2020/01/29 06:05:31 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -629,7 +629,7 @@ cpsw_start(struct ifnet *ifp)
 			device_printf(sc->sc_dev, "won't fit\n");
 			IFQ_DEQUEUE(&ifp->if_snd, m);
 			m_freem(m);
-			ifp->if_oerrors++;
+			if_statinc(ifp, if_oerrors);
 			continue;
 		} else if (error != 0) {
 			device_printf(sc->sc_dev, "error\n");
@@ -739,7 +739,7 @@ cpsw_watchdog(struct ifnet *ifp)
 
 	device_printf(sc->sc_dev, "device timeout\n");
 
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 	cpsw_init(ifp);
 	cpsw_start(ifp);
 }
@@ -1169,7 +1169,7 @@ cpsw_rxintr(void *arg)
 
 		if (cpsw_new_rxbuf(sc, i) != 0) {
 			/* drop current packet, reuse buffer for new */
-			ifp->if_ierrors++;
+			if_statinc(ifp, if_ierrors);
 			goto next;
 		}
 
@@ -1273,7 +1273,7 @@ cpsw_txintr(void *arg)
 		m_freem(rdp->tx_mb[sc->sc_txhead]);
 		rdp->tx_mb[sc->sc_txhead] = NULL;
 
-		ifp->if_opackets++;
+		if_statinc(ifp, if_opackets);
 
 		handled = true;
 

Index: src/sys/arch/arm/xscale/ixp425_if_npe.c
diff -u src/sys/arch/arm/xscale/ixp425_if_npe.c:1.44 src/sys/arch/arm/xscale/ixp425_if_npe.c:1.45
--- src/sys/arch/arm/xscale/ixp425_if_npe.c:1.44	Fri Dec 27 08:22:49 2019
+++ src/sys/arch/arm/xscale/ixp425_if_npe.c	Wed Jan 29 06:05:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: ixp425_if_npe.c,v 1.44 2019/12/27 08:22:49 msaitoh Exp $ */
+/*	$NetBSD: ixp425_if_npe.c,v 1.45 2020/01/29 06:05:31 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2006 Sam Leffler.  All rights reserved.
@@ -28,7 +28,7 @@
 #if 0
 __FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.1 2006/11/19 23:55:23 sam Exp $");
 #endif
-__KERNEL_RCSID(0, "$NetBSD: ixp425_if_npe.c,v 1.44 2019/12/27 08:22:49 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixp425_if_npe.c,v 1.45 2020/01/29 06:05:31 thorpej Exp $");
 
 /*
  * Intel XScale NPE Ethernet driver.
@@ -703,20 +703,23 @@ npe_addstats(struct npe_softc *sc)
 	struct ifnet *ifp = &sc->sc_ethercom.ec_if;
 	struct npestats *ns = sc->sc_stats;
 
-	ifp->if_oerrors +=
+	net_stat_ref_t nsr = IF_STAT_GETREF(ifp);
+	if_statadd_ref(nsr, if_oerrors,
 		  be32toh(ns->dot3StatsInternalMacTransmitErrors)
 		+ be32toh(ns->dot3StatsCarrierSenseErrors)
 		+ be32toh(ns->TxVLANIdFilterDiscards)
-		;
-	ifp->if_ierrors += be32toh(ns->dot3StatsFCSErrors)
+		);
+	if_statadd_ref(nsr, if_ierrors,
+		  be32toh(ns->dot3StatsFCSErrors)
 		+ be32toh(ns->dot3StatsInternalMacReceiveErrors)
 		+ be32toh(ns->RxOverrunDiscards)
 		+ be32toh(ns->RxUnderflowEntryDiscards)
-		;
-	ifp->if_collisions +=
+		);
+	if_statadd_ref(nsr, if_collisions,
 		  be32toh(ns->dot3StatsSingleCollisionFrames)
 		+ be32toh(ns->dot3StatsMultipleCollisionFrames)
-		;
+		);
+	IF_STAT_PUTREF(ifp);
 }
 
 static void
@@ -798,7 +801,7 @@ npe_txdone_finish(struct npe_softc *sc, 
 	 * We're no longer busy, so clear the busy flag and call the
 	 * start routine to xmit more packets.
 	 */
-	ifp->if_opackets += td->count;
+	if_statadd(ifp, if_opackets, td->count);
 	ifp->if_flags &= ~IFF_OACTIVE;
 	ifp->if_timer = 0;
 	if_schedule_deferred_start(ifp);
@@ -953,7 +956,7 @@ npe_rxdone(int qid, void *arg)
 				    mrx->m_pkthdr.len);
 				/* Back out "newly allocated" mbuf. */
 				m_freem(m);
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				goto fail;
 			}
 			if ((ifp->if_flags & IFF_PROMISC) == 0) {
@@ -1032,7 +1035,7 @@ npe_rxdone(int qid, void *arg)
 				    device_xname(sc->sc_dev), mrx->m_pkthdr.len);
 				/* Back out "newly allocated" mbuf. */
 				m_freem(m);
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				goto fail;
 			}
 #endif
@@ -1154,7 +1157,7 @@ npeinit_resetcb(void *xsc)
 	struct ifnet *ifp = &sc->sc_ethercom.ec_if;
 	uint32_t msg[2];
 
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 	npeinit_locked(sc);
 
 	msg[0] = NPE_NOTIFYMACRECOVERYDONE << NPE_MAC_MSGID_SHL
@@ -1402,7 +1405,7 @@ npewatchdog(struct ifnet *ifp)
 
 	aprint_error_dev(sc->sc_dev, "device timeout\n");
 	s = splnet();
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 	npeinit_locked(sc);
 	splx(s);
 }

Reply via email to