With MSI interrupts bge(4) just schedules taskqueue. Enter the network
epoch in the taskqueue handler. Reported by: kib
This commit is contained in:
parent
1bfca40c57
commit
976d7cecd5
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user