Module Name: src
Committed By: thorpej
Date: Sat Feb 1 05:14:28 UTC 2020
Modified Files:
src/sys/dev/pci: if_vte.c if_vtevar.h
Log Message:
Adopt <net/if_stats.h>.
To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 src/sys/dev/pci/if_vte.c
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/pci/if_vtevar.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_vte.c
diff -u src/sys/dev/pci/if_vte.c:1.28 src/sys/dev/pci/if_vte.c:1.29
--- src/sys/dev/pci/if_vte.c:1.28 Tue Nov 12 19:44:46 2019
+++ src/sys/dev/pci/if_vte.c Sat Feb 1 05:14:28 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: if_vte.c,v 1.28 2019/11/12 19:44:46 maya Exp $ */
+/* $NetBSD: if_vte.c,v 1.29 2020/02/01 05:14:28 thorpej Exp $ */
/*
* Copyright (c) 2011 Manuel Bouyer. All rights reserved.
@@ -55,7 +55,7 @@
/* Driver for DM&P Electronics, Inc, Vortex86 RDC R6040 FastEthernet. */
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_vte.c,v 1.28 2019/11/12 19:44:46 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_vte.c,v 1.29 2020/02/01 05:14:28 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -829,7 +829,7 @@ vte_ifwatchdog(struct ifnet *ifp)
return;
aprint_error_dev(sc->vte_dev, "watchdog timeout -- resetting\n");
- ifp->if_oerrors++;
+ if_statinc(ifp, if_oerrors);
vte_init(ifp);
if (!IFQ_IS_EMPTY(&ifp->if_snd))
vte_ifstart(ifp);
@@ -918,36 +918,46 @@ vte_stats_update(struct vte_softc *sc)
stat = &sc->vte_stats;
+ net_stat_ref_t nsr = IF_STAT_GETREF(ifp);
+
CSR_READ_2(sc, VTE_MECISR);
+
/* RX stats. */
stat->rx_frames += CSR_READ_2(sc, VTE_CNT_RX_DONE);
+
value = CSR_READ_2(sc, VTE_CNT_MECNT0);
stat->rx_bcast_frames += (value >> 8);
stat->rx_mcast_frames += (value & 0xFF);
+
value = CSR_READ_2(sc, VTE_CNT_MECNT1);
- stat->rx_runts += (value >> 8);
- stat->rx_crcerrs += (value & 0xFF);
+ if_statadd_ref(nsr, if_ierrors,
+ (value >> 8) + /* rx_runts */
+ (value & 0xFF)); /* rx_crcerrs */
+
value = CSR_READ_2(sc, VTE_CNT_MECNT2);
- stat->rx_long_frames += (value & 0xFF);
+ if_statadd_ref(nsr, if_ierrors,
+ (value & 0xFF)); /* rx_long_frames */
+
value = CSR_READ_2(sc, VTE_CNT_MECNT3);
- stat->rx_fifo_full += (value >> 8);
+ if_statadd_ref(nsr, if_ierrors,
+ (value >> 8)); /* rx_fifo_full */
stat->rx_desc_unavail += (value & 0xFF);
/* TX stats. */
- stat->tx_frames += CSR_READ_2(sc, VTE_CNT_TX_DONE);
+ if_statadd_ref(nsr, if_opackets,
+ CSR_READ_2(sc, VTE_CNT_TX_DONE)); /* tx_frames */
+
value = CSR_READ_2(sc, VTE_CNT_MECNT4);
- stat->tx_underruns += (value >> 8);
- stat->tx_late_colls += (value & 0xFF);
+ if_statadd_ref(nsr, if_oerrors,
+ (value >> 8) + /* tx_underruns */
+ (value & 0xFF)); /* tx_late_colls */
+ /* Pause stats. */
value = CSR_READ_2(sc, VTE_CNT_PAUSE);
stat->tx_pause_frames += (value >> 8);
stat->rx_pause_frames += (value & 0xFF);
- /* Update ifp counters. */
- ifp->if_opackets = stat->tx_frames;
- ifp->if_oerrors = stat->tx_late_colls + stat->tx_underruns;
- ifp->if_ierrors = stat->rx_crcerrs + stat->rx_runts +
- stat->rx_long_frames + stat->rx_fifo_full;
+ IF_STAT_PUTREF(ifp);
}
static int
@@ -1019,7 +1029,7 @@ vte_txeof(struct vte_softc *sc)
if ((status & VTE_DTST_TX_OWN) != 0)
break;
if ((status & VTE_DTST_TX_OK) != 0)
- ifp->if_collisions += (status & 0xf);
+ if_statadd(ifp, if_collisions, (status & 0xf));
sc->vte_cdata.vte_tx_cnt--;
/* Reclaim transmitted mbufs. */
bus_dmamap_sync(sc->vte_dmatag, txd->tx_dmamap, 0,
@@ -1125,7 +1135,7 @@ vte_rxeof(struct vte_softc *sc)
}
if (vte_newbuf(sc, rxd) != 0) {
DPRINTF(("vte_rxeof newbuf failed\n"));
- ifp->if_ierrors++;
+ if_statinc(ifp, if_ierrors);
rxd->rx_desc->drlen =
htole16(MCLBYTES - sizeof(uint32_t));
rxd->rx_desc->drst = htole16(VTE_DRST_RX_OWN);
Index: src/sys/dev/pci/if_vtevar.h
diff -u src/sys/dev/pci/if_vtevar.h:1.4 src/sys/dev/pci/if_vtevar.h:1.5
--- src/sys/dev/pci/if_vtevar.h:1.4 Tue Apr 14 20:32:36 2015
+++ src/sys/dev/pci/if_vtevar.h Sat Feb 1 05:14:28 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: if_vtevar.h,v 1.4 2015/04/14 20:32:36 riastradh Exp $ */
+/* $NetBSD: if_vtevar.h,v 1.5 2020/02/01 05:14:28 thorpej Exp $ */
/*-
* Copyright (c) 2010, Pyun YongHyeon <[email protected]>
@@ -101,17 +101,21 @@ struct vte_hw_stats {
uint32_t rx_frames;
uint32_t rx_bcast_frames;
uint32_t rx_mcast_frames;
+#if 0 /* unused fields; if_stats used instead. */
uint32_t rx_runts;
uint32_t rx_crcerrs;
uint32_t rx_long_frames;
uint32_t rx_fifo_full;
+#endif
uint32_t rx_desc_unavail;
uint32_t rx_pause_frames;
/* TX stats. */
+#if 0 /* unused fields; if_stats used instead. */
uint32_t tx_frames;
uint32_t tx_underruns;
uint32_t tx_late_colls;
+#endif
uint32_t tx_pause_frames;
};