Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jan 2020 16:36:58 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r357051 - head/sys/dev/bge
Message-ID:  <202001231636.00NGawrr080128@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001231636.00NGawrr080128>