diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2020-01-24 17:24:02 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2020-01-24 17:24:02 +0000 |
commit | 2f0e17b7de4ce9a28f443e64477a2494b294ebad (patch) | |
tree | befc66bfd70ebf2ead30f23bcd7d8c17159c6733 /sys/dev/re | |
parent | 5ab0c8434a7befeafbaf81e899fc23f660b64c9d (diff) | |
download | src-2f0e17b7de4ce9a28f443e64477a2494b294ebad.tar.gz src-2f0e17b7de4ce9a28f443e64477a2494b294ebad.zip |
re(4) uses taskqueue to process input packets. Enter network epoch
in there.
Notes
Notes:
svn path=/head/; revision=357090
Diffstat (limited to 'sys/dev/re')
-rw-r--r-- | sys/dev/re/if_re.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c index 1d750c25d233..76fa06f63585 100644 --- a/sys/dev/re/if_re.c +++ b/sys/dev/re/if_re.c @@ -2576,6 +2576,7 @@ re_intr(void *arg) static void re_int_task(void *arg, int npending) { + struct epoch_tracker et; struct rl_softc *sc; struct ifnet *ifp; u_int16_t status; @@ -2602,8 +2603,11 @@ re_int_task(void *arg, int npending) } #endif - if (status & (RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_FIFO_OFLOW)) + if (status & (RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_FIFO_OFLOW)) { + NET_EPOCH_ENTER(et); rval = re_rxeof(sc, NULL); + NET_EPOCH_EXIT(et); + } /* * Some chips will ignore a second TX request issued |