svn commit: r357051 - head/sys/dev/bge

Gleb Smirnoff glebius at FreeBSD.org
Thu Jan 23 16:36:59 UTC 2020


Author: glebius
Date: Thu Jan 23 16:36:58 2020
New Revision: 357051
URL: https://svnweb.freebsd.org/changeset/base/357051

Log:
  With MSI interrupts bge(4) just schedules taskqueue.  Enter the network
  epoch in the taskqueue handler.
  
  Reported by:	kib

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Thu Jan 23 16:24:51 2020	(r357050)
+++ head/sys/dev/bge/if_bge.c	Thu Jan 23 16:36:58 2020	(r357051)
@@ -4646,6 +4646,7 @@ bge_msi_intr(void *arg)
 static void
 bge_intr_task(void *arg, int pending)
 {
+	struct epoch_tracker et;
 	struct bge_softc *sc;
 	if_t ifp;
 	uint32_t status, status_tag;
@@ -4688,7 +4689,9 @@ bge_intr_task(void *arg, int pending)
 	    sc->bge_rx_saved_considx != rx_prod) {
 		/* Check RX return ring producer/consumer. */
 		BGE_UNLOCK(sc);
+		NET_EPOCH_ENTER(et);
 		bge_rxeof(sc, rx_prod, 0);
+		NET_EPOCH_EXIT(et);
 		BGE_LOCK(sc);
 	}
 	if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {


More information about the svn-src-all mailing list