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>