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) {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to