Module Name:    src
Committed By:   thorpej
Date:           Thu Jan 30 04:56:11 UTC 2020

Modified Files:
        src/sys/dev/ic: seeq8005.c sgec.c smc83c170.c smc90cx6.c smc91cxx.c
            wi.c

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


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 src/sys/dev/ic/seeq8005.c
cvs rdiff -u -r1.51 -r1.52 src/sys/dev/ic/sgec.c
cvs rdiff -u -r1.91 -r1.92 src/sys/dev/ic/smc83c170.c
cvs rdiff -u -r1.74 -r1.75 src/sys/dev/ic/smc90cx6.c
cvs rdiff -u -r1.103 -r1.104 src/sys/dev/ic/smc91cxx.c
cvs rdiff -u -r1.254 -r1.255 src/sys/dev/ic/wi.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/ic/seeq8005.c
diff -u src/sys/dev/ic/seeq8005.c:1.65 src/sys/dev/ic/seeq8005.c:1.66
--- src/sys/dev/ic/seeq8005.c:1.65	Sun Nov 10 21:16:35 2019
+++ src/sys/dev/ic/seeq8005.c	Thu Jan 30 04:56:11 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: seeq8005.c,v 1.65 2019/11/10 21:16:35 chs Exp $ */
+/* $NetBSD: seeq8005.c,v 1.66 2020/01/30 04:56:11 thorpej Exp $ */
 
 /*
  * Copyright (c) 2000, 2001 Ben Harris
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: seeq8005.c,v 1.65 2019/11/10 21:16:35 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: seeq8005.c,v 1.66 2020/01/30 04:56:11 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1077,27 +1077,27 @@ ea_txint(struct seeq8005_softc *sc)
 			 * The 8004 contains a 4 bit collision count
 			 * in the status register.
 			 */
-
+#if 0
 			/* This appears to be broken on 80C04.AE */
-/*			ifp->if_collisions +=
+			if_statadd(ifp, if_collisions,
 			    (txstatus >> SEEQ_TXSTAT_COLLISIONS_SHIFT)
-			    & SEEQ_TXSTAT_COLLISION_MASK;*/
+			    & SEEQ_TXSTAT_COLLISION_MASK;
+#endif
 
 			/* Use the TX Collision register */
 			ea_select_buffer(sc, SEEQ_BUFCODE_TX_COLLS);
 			colls = bus_space_read_1(iot, ioh, SEEQ_BUFWIN);
-			ifp->if_collisions += colls;
+			if_statadd(ifp, if_collisions, colls);
 			break;
 		}
 		case SEEQ_8005:
 			/* We known there was at least 1 collision */
-			ifp->if_collisions++;
+			if_statinc(ifp, if_collisions);
 			break;
 		}
 	} else if (txstatus & SEEQ_TXSTAT_COLLISION16) {
 		printf("seeq_intr: col16 %x\n", txstatus);
-		ifp->if_collisions += 16;
-		ifp->if_oerrors++;
+		if_statadd2(ifp, if_collisions, 16, if_oerrors, 1);
 	}
 
 	/* Have we completed transmission on the packet ? */
@@ -1107,7 +1107,7 @@ ea_txint(struct seeq8005_softc *sc)
 		ifp->if_flags &= ~IFF_OACTIVE;
 
 		/* Update stats */
-		ifp->if_opackets++;
+		if_statinc(ifp, if_opackets);
 
 		/* Tx next packet */
 
@@ -1155,7 +1155,7 @@ ea_rxint(struct seeq8005_softc *sc)
 		/* Sanity-check the next-packet pointer and flags. */
 		if (__predict_false(ptr < sc->sc_tx_bufsize ||
 		    (ctrl & SEEQ_PKTCMD_TX))) {
-			++ifp->if_ierrors;
+			if_statinc(ifp, if_ierrors);
 			log(LOG_ERR,
 			    "%s: Rx chain corrupt at %04x (ptr = %04x)\n",
 			    device_xname(sc->sc_dev), addr, ptr);
@@ -1181,7 +1181,7 @@ ea_rxint(struct seeq8005_softc *sc)
 		if (__predict_false(status &
 			(SEEQ_RXSTAT_CRC_ERROR | SEEQ_RXSTAT_DRIBBLE_ERROR |
 			 SEEQ_RXSTAT_SHORT_FRAME))) {
-			++ifp->if_ierrors;
+			if_statinc(ifp, if_ierrors);
 			log(LOG_WARNING,
 			    "%s: rx packet error at %04x (err=%02x)\n",
 			    device_xname(sc->sc_dev), addr, status & 0x0f);
@@ -1195,7 +1195,7 @@ ea_rxint(struct seeq8005_softc *sc)
 		 * wants incoming packets in a single mbuf cluster.
 		 */
 		if (__predict_false(len > MCLBYTES)) {
-			++ifp->if_ierrors;
+			if_statinc(ifp, if_ierrors);
 			log(LOG_ERR,
 			    "%s: rx packet size error at %04x (len=%d)\n",
 			    device_xname(sc->sc_dev), addr, len);
@@ -1478,7 +1478,7 @@ ea_watchdog(struct ifnet *ifp)
 	log(LOG_ERR, "%s: lost Tx interrupt (status = 0x%04x)\n",
 	    device_xname(sc->sc_dev),
 	    SEEQ_READ16(sc, sc->sc_iot, sc->sc_ioh, SEEQ_STATUS));
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 
 	/* Kick the interface */
 

Index: src/sys/dev/ic/sgec.c
diff -u src/sys/dev/ic/sgec.c:1.51 src/sys/dev/ic/sgec.c:1.52
--- src/sys/dev/ic/sgec.c:1.51	Tue May 28 07:41:48 2019
+++ src/sys/dev/ic/sgec.c	Thu Jan 30 04:56:11 2020
@@ -1,4 +1,4 @@
-/*      $NetBSD: sgec.c,v 1.51 2019/05/28 07:41:48 msaitoh Exp $ */
+/*      $NetBSD: sgec.c,v 1.52 2020/01/30 04:56:11 thorpej Exp $ */
 /*
  * Copyright (c) 1999 Ludd, University of Lule}, Sweden. All rights reserved.
  *
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sgec.c,v 1.51 2019/05/28 07:41:48 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sgec.c,v 1.52 2020/01/30 04:56:11 thorpej Exp $");
 
 #include "opt_inet.h"
 
@@ -452,7 +452,7 @@ sgec_intr(struct ze_softc *sc)
 			if (++sc->sc_nextrx == RXDESCS)
 				sc->sc_nextrx = 0;
 			if (len < ETHER_MIN_LEN) {
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				m_freem(m);
 			} else {
 				m_set_rcvif(m, ifp);
@@ -495,7 +495,7 @@ sgec_intr(struct ze_softc *sc)
 			    sc->sc_txcnt = 0;
 			sc->sc_inq -= map->dm_nsegs;
 			KASSERT(zc->zc_xmit[lastack].ze_tdes1 & ZE_TDES1_LS);
-			ifp->if_opackets++;
+			if_statinc(ifp, if_opackets);
 			bus_dmamap_unload(sc->sc_dmat, map);
 			KASSERT(sc->sc_txmbuf[lastack]);
 			m_freem(sc->sc_txmbuf[lastack]);

Index: src/sys/dev/ic/smc83c170.c
diff -u src/sys/dev/ic/smc83c170.c:1.91 src/sys/dev/ic/smc83c170.c:1.92
--- src/sys/dev/ic/smc83c170.c:1.91	Wed Jan 22 03:48:10 2020
+++ src/sys/dev/ic/smc83c170.c	Thu Jan 30 04:56:11 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: smc83c170.c,v 1.91 2020/01/22 03:48:10 thorpej Exp $	*/
+/*	$NetBSD: smc83c170.c,v 1.92 2020/01/30 04:56:11 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smc83c170.c,v 1.91 2020/01/22 03:48:10 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smc83c170.c,v 1.92 2020/01/30 04:56:11 thorpej Exp $");
 
 
 #include <sys/param.h>
@@ -545,7 +545,7 @@ epic_watchdog(struct ifnet *ifp)
 	struct epic_softc *sc = ifp->if_softc;
 
 	printf("%s: device timeout\n", device_xname(sc->sc_dev));
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 
 	(void)epic_init(ifp);
 }
@@ -645,7 +645,7 @@ epic_intr(void *arg)
 				if (rxstatus & ER_RXSTAT_ALIGNERROR)
 					printf("%s: alignment error\n",
 					    device_xname(sc->sc_dev));
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				EPIC_INIT_RXDESC(sc, i);
 				continue;
 			}
@@ -663,7 +663,7 @@ epic_intr(void *arg)
 				/*
 				 * Runt packet; drop it now.
 				 */
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				EPIC_INIT_RXDESC(sc, i);
 				bus_dmamap_sync(sc->sc_dmat, ds->ds_dmamap, 0,
 				    ds->ds_dmamap->dm_mapsize,
@@ -696,7 +696,7 @@ epic_intr(void *arg)
 				m = ds->ds_mbuf;
 				if (epic_add_rxbuf(sc, i) != 0) {
  dropit:
-					ifp->if_ierrors++;
+					if_statinc(ifp, if_ierrors);
 					EPIC_INIT_RXDESC(sc, i);
 					bus_dmamap_sync(sc->sc_dmat,
 					    ds->ds_dmamap, 0,
@@ -762,15 +762,18 @@ epic_intr(void *arg)
 			/*
 			 * Check for errors and collisions.
 			 */
+			net_stat_ref_t nsr = IF_STAT_GETREF(ifp);
 			if ((txstatus & ET_TXSTAT_PACKETTX) == 0)
-				ifp->if_oerrors++;
+				if_statinc_ref(nsr, if_oerrors);
 			else
-				ifp->if_opackets++;
-			ifp->if_collisions +=
-			    TXSTAT_COLLISIONS(txstatus);
+				if_statinc_ref(nsr, if_opackets);
+			if (TXSTAT_COLLISIONS(txstatus))
+				if_statadd_ref(nsr, if_collisions,
+				    TXSTAT_COLLISIONS(txstatus));
 			if (txstatus & ET_TXSTAT_CARSENSELOST)
 				printf("%s: lost carrier\n",
 				    device_xname(sc->sc_dev));
+			IF_STAT_PUTREF(ifp);
 		}
 
 		/* Update the dirty transmit buffer pointer. */

Index: src/sys/dev/ic/smc90cx6.c
diff -u src/sys/dev/ic/smc90cx6.c:1.74 src/sys/dev/ic/smc90cx6.c:1.75
--- src/sys/dev/ic/smc90cx6.c:1.74	Tue Feb  5 06:17:02 2019
+++ src/sys/dev/ic/smc90cx6.c	Thu Jan 30 04:56:11 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: smc90cx6.c,v 1.74 2019/02/05 06:17:02 msaitoh Exp $ */
+/*	$NetBSD: smc90cx6.c,v 1.75 2020/01/30 04:56:11 thorpej Exp $ */
 
 /*-
  * Copyright (c) 1994, 1995, 1998 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smc90cx6.c,v 1.74 2019/02/05 06:17:02 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smc90cx6.c,v 1.75 2020/01/30 04:56:11 thorpej Exp $");
 
 /* #define BAHSOFTCOPY */
 #define BAHRETRANSMIT /**/
@@ -523,7 +523,7 @@ bah_srint(void *vsc)
 		 * count it as input error (we dont have any other
 		 * detectable)
 	 	 */
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		goto cleanup;
 	}
 
@@ -548,7 +548,7 @@ bah_srint(void *vsc)
 		MCLGET(m, M_DONTWAIT);
 
 	if (m == 0) {
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		goto cleanup;
 	}
 
@@ -575,7 +575,7 @@ bah_srint(void *vsc)
 			MGET(m, M_DONTWAIT, MT_DATA);
 
 			if (m == 0) {
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				goto cleanup;
 			}
 
@@ -654,7 +654,7 @@ bah_tint(struct bah_softc *sc, int isr)
 	 */
 
 	if (isr & BAH_TMA || sc->sc_broadcast[buffer])
-		sc->sc_arccom.ac_if.if_opackets++;
+		if_statinc(ifp, if_opackets);
 #ifdef BAHRETRANSMIT
 	else if (ifp->if_flags & IFF_LINK2 && ifp->if_timer > 0
 	    && --sc->sc_retransmits[buffer] > 0) {
@@ -664,7 +664,7 @@ bah_tint(struct bah_softc *sc, int isr)
 	}
 #endif
 	else
-		ifp->if_oerrors++;
+		if_statinc(ifp, if_oerrors);
 
 
 	/* We know we can accept another buffer at this point. */
@@ -760,7 +760,7 @@ bahintr(void *arg)
 			 * PUTREG(BAHCMD, BAH_CONF(CONF_LONG));
 			 */
 			PUTREG(BAHCMD, BAH_CLR(CLR_RECONFIG));
-			sc->sc_arccom.ac_if.if_collisions++;
+			if_statinc(&sc->sc_arccom.ac_if, if_collisions);
 
 			/*
 			 * If less than 2 seconds per reconfig:

Index: src/sys/dev/ic/smc91cxx.c
diff -u src/sys/dev/ic/smc91cxx.c:1.103 src/sys/dev/ic/smc91cxx.c:1.104
--- src/sys/dev/ic/smc91cxx.c:1.103	Fri Dec  6 07:12:38 2019
+++ src/sys/dev/ic/smc91cxx.c	Thu Jan 30 04:56:11 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: smc91cxx.c,v 1.103 2019/12/06 07:12:38 maxv Exp $	*/
+/*	$NetBSD: smc91cxx.c,v 1.104 2020/01/30 04:56:11 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -71,7 +71,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smc91cxx.c,v 1.103 2019/12/06 07:12:38 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smc91cxx.c,v 1.104 2020/01/30 04:56:11 thorpej Exp $");
 
 #include "opt_inet.h"
 
@@ -643,7 +643,7 @@ smc91cxx_start(struct ifnet *ifp)
 	if (len > (ETHER_MAX_LEN - ETHER_CRC_LEN)) {
 		printf("%s: large packet discarded\n",
 		    device_xname(sc->sc_dev));
-		ifp->if_oerrors++;
+		if_statinc(ifp, if_oerrors);
 		IFQ_DEQUEUE(&ifp->if_snd, m);
 		m_freem(m);
 		goto readcheck;
@@ -762,7 +762,7 @@ smc91cxx_start(struct ifnet *ifp)
 	/* Hand off a copy to the bpf. */
 	bpf_mtap(ifp, m, BPF_D_OUT);
 
-	ifp->if_opackets++;
+	if_statinc(ifp, if_opackets);
 	m_freem(m);
 
  readcheck:
@@ -891,7 +891,7 @@ smc91cxx_intr(void *arg)
 	/* Receive overrun interrupts. */
 	if (status & IM_RX_OVRN_INT) {
 		smc91cxx_intr_ack_write(bst, bsh, IM_RX_OVRN_INT, 0);
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 	}
 
 	/* Receive interrupts. */
@@ -951,10 +951,10 @@ smc91cxx_intr(void *arg)
 				printf("%s: successful packet caused TX"
 				    " interrupt?!\n", device_xname(sc->sc_dev));
 		} else
-			ifp->if_oerrors++;
+			if_statinc(ifp, if_oerrors);
 
 		if (tx_status & EPHSR_LATCOL)
-			ifp->if_collisions++;
+			if_statinc(ifp, if_collisions);
 
 		/* Disable this interrupt (start will reenable if needed). */
 		mask &= ~IM_TX_INT;
@@ -995,10 +995,14 @@ smc91cxx_intr(void *arg)
 		card_stats = bus_space_read_2(bst, bsh, COUNTER_REG_W);
 
 		/* Single collisions. */
-		ifp->if_collisions += card_stats & ECR_COLN_MASK;
+		if (card_stats & ECR_COLN_MASK)
+			if_statadd(ifp, if_collisions,
+			    card_stats & ECR_COLN_MASK);
 
 		/* Multiple collisions. */
-		ifp->if_collisions += (card_stats & ECR_MCOLN_MASK) >> 4;
+		if ((card_stats & ECR_MCOLN_MASK) >> 4)
+			if_statadd(ifp, if_collisions,
+			    (card_stats & ECR_MCOLN_MASK) >> 4);
 
 		SMC_SELECT_BANK(sc, 2);
 
@@ -1080,7 +1084,7 @@ smc91cxx_read(struct smc91cxx_softc *sc)
 
 	packetlen &= RLEN_MASK;
 	if (packetlen < ETHER_MIN_LEN - ETHER_CRC_LEN + 6 || packetlen > 1534) {
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		goto out;
 	}
 
@@ -1092,7 +1096,7 @@ smc91cxx_read(struct smc91cxx_softc *sc)
 
 	/* Account for receive errors and discard. */
 	if (status & RS_ERRORS) {
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		goto out;
 	}
 
@@ -1114,7 +1118,7 @@ smc91cxx_read(struct smc91cxx_softc *sc)
 	MCLGET(m, M_DONTWAIT);
 	if ((m->m_flags & M_EXT) == 0) {
 		m_freem(m);
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		aprint_error_dev(sc->sc_dev,
 		     "can't allocate cluster for incoming packet\n");
 		goto out;
@@ -1296,7 +1300,7 @@ smc91cxx_watchdog(struct ifnet *ifp)
 	struct smc91cxx_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);
 	smc91cxx_reset(sc);
 }
 

Index: src/sys/dev/ic/wi.c
diff -u src/sys/dev/ic/wi.c:1.254 src/sys/dev/ic/wi.c:1.255
--- src/sys/dev/ic/wi.c:1.254	Thu Dec  5 03:11:40 2019
+++ src/sys/dev/ic/wi.c	Thu Jan 30 04:56:11 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: wi.c,v 1.254 2019/12/05 03:11:40 msaitoh Exp $	*/
+/*	$NetBSD: wi.c,v 1.255 2020/01/30 04:56:11 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -99,7 +99,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wi.c,v 1.254 2019/12/05 03:11:40 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wi.c,v 1.255 2020/01/30 04:56:11 thorpej Exp $");
 
 #define WI_HERMES_AUTOINC_WAR	/* Work around data write autoinc bug. */
 #define WI_HERMES_STATS_WAR	/* Work around stats counter bug. */
@@ -1173,7 +1173,7 @@ wi_start(struct ifnet *ifp)
 			if (m0 == NULL)
 				break;
 			IFQ_DEQUEUE(&ifp->if_snd, m0);
-			ifp->if_opackets++;
+			if_statinc(ifp, if_opackets);
 			m_copydata(m0, 0, ETHER_HDR_LEN,
 			    (void *)&frmhdr.wi_ehdr);
 			bpf_mtap(ifp, m0, BPF_D_OUT);
@@ -1181,7 +1181,7 @@ wi_start(struct ifnet *ifp)
 			eh = mtod(m0, struct ether_header *);
 			ni = ieee80211_find_txnode(ic, eh->ether_dhost);
 			if (ni == NULL) {
-				ifp->if_oerrors++;
+				if_statinc(ifp, if_oerrors);
 				continue;
 			}
 			if ((ni->ni_flags & IEEE80211_NODE_PWR_MGT) &&
@@ -1191,7 +1191,7 @@ wi_start(struct ifnet *ifp)
 			}
 			if ((m0 = ieee80211_encap(ic, m0, ni)) == NULL) {
 				ieee80211_free_node(ni);
-				ifp->if_oerrors++;
+				if_statinc(ifp, if_oerrors);
 				continue;
 			}
 			wh = mtod(m0, struct ieee80211_frame *);
@@ -1207,7 +1207,7 @@ wi_start(struct ifnet *ifp)
 		    (wh->i_fc[1] & IEEE80211_FC1_WEP)) {
 			if (ieee80211_crypto_encap(ic, ni, m0) == NULL) {
 				m_freem(m0);
-				ifp->if_oerrors++;
+				if_statinc(ifp, if_oerrors);
 				goto next;
 			}
 			frmhdr.wi_tx_ctl |= htole16(WI_TXCNTL_NOCRYPT);
@@ -1257,7 +1257,7 @@ wi_start(struct ifnet *ifp)
 		    wi_mwrite_bap(sc, fid, off, m0, m0->m_pkthdr.len) != 0) {
 			aprint_error_dev(sc->sc_dev, "%s write fid %x failed\n",
 			    __func__, fid);
-			ifp->if_oerrors++;
+			if_statinc(ifp, if_oerrors);
 			m_freem(m0);
 			goto next;
 		}
@@ -1332,7 +1332,7 @@ wi_watchdog(struct ifnet *ifp)
 	if (sc->sc_tx_timer) {
 		if (--sc->sc_tx_timer == 0) {
 			printf("%s: device timeout\n", ifp->if_xname);
-			ifp->if_oerrors++;
+			if_statinc(ifp, if_oerrors);
 			wi_init(ifp);
 			return;
 		}
@@ -1669,7 +1669,7 @@ wi_rx_intr(struct wi_softc *sc)
 	if (wi_read_bap(sc, fid, 0, &frmhdr, sizeof(frmhdr))) {
 		aprint_error_dev(sc->sc_dev, "%s read fid %x failed\n",
 		    __func__, fid);
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		return;
 	}
 
@@ -1682,7 +1682,7 @@ wi_rx_intr(struct wi_softc *sc)
 	status = le16toh(frmhdr.wi_status);
 	if ((status & WI_STAT_ERRSTAT) != 0 &&
 	    ic->ic_opmode != IEEE80211_M_MONITOR) {
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		DPRINTF(("wi_rx_intr: fid %x error status %x\n", fid, status));
 		return;
 	}
@@ -1698,7 +1698,7 @@ wi_rx_intr(struct wi_softc *sc)
 	 */
 	if (off + len > MCLBYTES) {
 		if (ic->ic_opmode != IEEE80211_M_MONITOR) {
-			ifp->if_ierrors++;
+			if_statinc(ifp, if_ierrors);
 			DPRINTF(("wi_rx_intr: oversized packet\n"));
 			return;
 		} else
@@ -1707,7 +1707,7 @@ wi_rx_intr(struct wi_softc *sc)
 
 	MGETHDR(m, M_DONTWAIT, MT_DATA);
 	if (m == NULL) {
-		ifp->if_ierrors++;
+		if_statinc(ifp, if_ierrors);
 		DPRINTF(("wi_rx_intr: MGET failed\n"));
 		return;
 	}
@@ -1715,7 +1715,7 @@ wi_rx_intr(struct wi_softc *sc)
 		MCLGET(m, M_DONTWAIT);
 		if ((m->m_flags & M_EXT) == 0) {
 			m_freem(m);
-			ifp->if_ierrors++;
+			if_statinc(ifp, if_ierrors);
 			DPRINTF(("wi_rx_intr: MCLGET failed\n"));
 			return;
 		}
@@ -1831,7 +1831,7 @@ wi_tx_ex_intr(struct wi_softc *sc)
 			printf(", status=0x%x", status);
 		printf("\n");
 	}
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 	rssd = &sc->sc_rssd[frmhdr.wi_tx_idx];
 	id = &rssd->rd_desc;
 	if ((status & WI_TXSTAT_RET_ERR) != 0)
@@ -2084,9 +2084,10 @@ wi_info_intr(struct wi_softc *sc)
 #endif
 			*ptr += stat;
 		}
-		ifp->if_collisions = sc->sc_stats.wi_tx_single_retries +
+		if_statadd(ifp, if_collisions,
+		    sc->sc_stats.wi_tx_single_retries +
 		    sc->sc_stats.wi_tx_multi_retries +
-		    sc->sc_stats.wi_tx_retry_limit;
+		    sc->sc_stats.wi_tx_retry_limit);
 		break;
 
 	case WI_INFO_SCAN_RESULTS:

Reply via email to