Module Name:    src
Committed By:   thorpej
Date:           Sat Feb  1 06:17:23 UTC 2020

Modified Files:
        src/sys/dev/pci: if_bge.c if_bgevar.h

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


To generate a diff of this commit:
cvs rdiff -u -r1.342 -r1.343 src/sys/dev/pci/if_bge.c
cvs rdiff -u -r1.25 -r1.26 src/sys/dev/pci/if_bgevar.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_bge.c
diff -u src/sys/dev/pci/if_bge.c:1.342 src/sys/dev/pci/if_bge.c:1.343
--- src/sys/dev/pci/if_bge.c:1.342	Mon Nov 25 05:35:26 2019
+++ src/sys/dev/pci/if_bge.c	Sat Feb  1 06:17:23 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_bge.c,v 1.342 2019/11/25 05:35:26 msaitoh Exp $	*/
+/*	$NetBSD: if_bge.c,v 1.343 2020/02/01 06:17:23 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2001 Wind River Systems
@@ -79,7 +79,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_bge.c,v 1.342 2019/11/25 05:35:26 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_bge.c,v 1.343 2020/02/01 06:17:23 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -4453,13 +4453,13 @@ bge_rxeof(struct bge_softc *sc)
 			    mtod(m, char *) - (char *)sc->bge_cdata.bge_jumbo_buf,
 			    BGE_JLEN, BUS_DMASYNC_POSTREAD);
 			if (cur_rx->bge_flags & BGE_RXBDFLAG_ERROR) {
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				bge_newbuf_jumbo(sc, sc->bge_jumbo, m);
 				continue;
 			}
 			if (bge_newbuf_jumbo(sc, sc->bge_jumbo,
 					     NULL)== ENOBUFS) {
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				bge_newbuf_jumbo(sc, sc->bge_jumbo, m);
 				continue;
 			}
@@ -4472,7 +4472,7 @@ bge_rxeof(struct bge_softc *sc)
 			dmamap = sc->bge_cdata.bge_rx_std_map[rxidx];
 			sc->bge_cdata.bge_rx_std_map[rxidx] = NULL;
 			if (dmamap == NULL) {
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				bge_newbuf_std(sc, sc->bge_std, m, dmamap);
 				continue;
 			}
@@ -4480,13 +4480,13 @@ bge_rxeof(struct bge_softc *sc)
 			    dmamap->dm_mapsize, BUS_DMASYNC_POSTREAD);
 			bus_dmamap_unload(sc->bge_dmatag, dmamap);
 			if (cur_rx->bge_flags & BGE_RXBDFLAG_ERROR) {
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				bge_newbuf_std(sc, sc->bge_std, m, dmamap);
 				continue;
 			}
 			if (bge_newbuf_std(sc, sc->bge_std,
 			    NULL, dmamap) == ENOBUFS) {
-				ifp->if_ierrors++;
+				if_statinc(ifp, if_ierrors);
 				bge_newbuf_std(sc, sc->bge_std, m, dmamap);
 				continue;
 			}
@@ -4617,7 +4617,7 @@ bge_txeof(struct bge_softc *sc)
 		idx = sc->bge_tx_saved_considx;
 		cur_tx = &sc->bge_rdata->bge_tx_ring[idx];
 		if (cur_tx->bge_flags & BGE_TXBDFLAG_END)
-			ifp->if_opackets++;
+			if_statinc(ifp, if_opackets);
 		m = sc->bge_cdata.bge_tx_chain[idx];
 		if (m != NULL) {
 			sc->bge_cdata.bge_tx_chain[idx] = NULL;
@@ -4812,8 +4812,11 @@ bge_stats_update_regs(struct bge_softc *
 {
 	struct ifnet *ifp = &sc->ethercom.ec_if;
 
-	ifp->if_collisions += CSR_READ_4(sc, BGE_MAC_STATS +
-	    offsetof(struct bge_mac_stats_regs, etherStatsCollisions));
+	net_stat_ref_t nsr = IF_STAT_GETREF(ifp);
+
+	if_statadd_ref(nsr, if_collisions,
+	    CSR_READ_4(sc, BGE_MAC_STATS +
+	    offsetof(struct bge_mac_stats_regs, etherStatsCollisions)));
 
 	/*
 	 * On BCM5717, BCM5718, BCM5719 A0 and BCM5720 A0,
@@ -4824,10 +4827,15 @@ bge_stats_update_regs(struct bge_softc *
 	if (BGE_ASICREV(sc->bge_chipid) != BGE_ASICREV_BCM5717 &&
 	    sc->bge_chipid != BGE_CHIPID_BCM5719_A0 &&
 	    sc->bge_chipid != BGE_CHIPID_BCM5720_A0) {
-		ifp->if_ierrors += CSR_READ_4(sc, BGE_RXLP_LOCSTAT_IFIN_DROPS);
+		if_statadd_ref(nsr, if_ierrors,
+		    CSR_READ_4(sc, BGE_RXLP_LOCSTAT_IFIN_DROPS));
 	}
-	ifp->if_ierrors += CSR_READ_4(sc, BGE_RXLP_LOCSTAT_IFIN_ERRORS);
-	ifp->if_ierrors += CSR_READ_4(sc, BGE_RXLP_LOCSTAT_OUT_OF_BDS);
+	if_statadd_ref(nsr, if_ierrors,
+	    CSR_READ_4(sc, BGE_RXLP_LOCSTAT_IFIN_ERRORS));
+	if_statadd_ref(nsr, if_ierrors,
+	    CSR_READ_4(sc, BGE_RXLP_LOCSTAT_OUT_OF_BDS));
+
+	IF_STAT_PUTREF(ifp);
 
 	if (sc->bge_flags & BGEF_RDMA_BUG) {
 		uint32_t val, ucast, mcast, bcast;
@@ -4865,12 +4873,15 @@ bge_stats_update(struct bge_softc *sc)
 #define READ_STAT(sc, stats, stat) \
 	  CSR_READ_4(sc, stats + offsetof(struct bge_stats, stat))
 
-	ifp->if_collisions +=
+	uint64_t collisions =
 	  (READ_STAT(sc, stats, dot3StatsSingleCollisionFrames.bge_addr_lo) +
 	   READ_STAT(sc, stats, dot3StatsMultipleCollisionFrames.bge_addr_lo) +
 	   READ_STAT(sc, stats, dot3StatsExcessiveCollisions.bge_addr_lo) +
-	   READ_STAT(sc, stats, dot3StatsLateCollisions.bge_addr_lo)) -
-	  ifp->if_collisions;
+	   READ_STAT(sc, stats, dot3StatsLateCollisions.bge_addr_lo));
+
+	if_statadd(ifp, if_collisions, collisions - sc->bge_if_collisions);
+	sc->bge_if_collisions = collisions;
+
 
 	BGE_EVCNT_UPD(sc->bge_ev_tx_xoff,
 		      READ_STAT(sc, stats, outXoffSent.bge_addr_lo));
@@ -5942,7 +5953,7 @@ bge_watchdog(struct ifnet *ifp)
 	ifp->if_flags &= ~IFF_RUNNING;
 	bge_init(ifp);
 
-	ifp->if_oerrors++;
+	if_statinc(ifp, if_oerrors);
 }
 
 static void

Index: src/sys/dev/pci/if_bgevar.h
diff -u src/sys/dev/pci/if_bgevar.h:1.25 src/sys/dev/pci/if_bgevar.h:1.26
--- src/sys/dev/pci/if_bgevar.h:1.25	Fri Sep 13 07:55:07 2019
+++ src/sys/dev/pci/if_bgevar.h	Sat Feb  1 06:17:23 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_bgevar.h,v 1.25 2019/09/13 07:55:07 msaitoh Exp $	*/
+/*	$NetBSD: if_bgevar.h,v 1.26 2020/02/01 06:17:23 thorpej Exp $	*/
 /*
  * Copyright (c) 2001 Wind River Systems
  * Copyright (c) 1997, 1998, 1999, 2001
@@ -339,6 +339,7 @@ struct bge_softc {
 	struct evcnt bge_ev_rx_macctl;	/* receive MAC control packets */
 	struct evcnt bge_ev_xoffentered;/* XOFF state entered */
 #endif /* BGE_EVENT_COUNTERS */
+	uint64_t		bge_if_collisions;
 	int			bge_txcnt;
 	struct callout		bge_timeout;
 	int			bge_pending_rxintr_change;

Reply via email to