aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2020-01-24 17:24:02 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2020-01-24 17:24:02 +0000
commit2f0e17b7de4ce9a28f443e64477a2494b294ebad (patch)
treebefc66bfd70ebf2ead30f23bcd7d8c17159c6733
parent5ab0c8434a7befeafbaf81e899fc23f660b64c9d (diff)
downloadsrc-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
-rw-r--r--sys/dev/re/if_re.c6
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