aboutsummaryrefslogtreecommitdiff
path: root/sys/netgraph
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2019-10-07 22:40:05 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2019-10-07 22:40:05 +0000
commitb8a6e03fac922677455d8e0977831506cf8212e8 (patch)
tree28fc099c8daca3278068766b2863e110876865ce /sys/netgraph
parent746c7ae563142eaae423b0e6c0077ef2013c2435 (diff)
Notes
Diffstat (limited to 'sys/netgraph')
-rw-r--r--sys/netgraph/ng_ether.c3
-rw-r--r--sys/netgraph/ng_iface.c3
-rw-r--r--sys/netgraph/ng_ip_input.c7
3 files changed, 12 insertions, 1 deletions
diff --git a/sys/netgraph/ng_ether.c b/sys/netgraph/ng_ether.c
index 575f3740a6f1e..3b1a9efc849e1 100644
--- a/sys/netgraph/ng_ether.c
+++ b/sys/netgraph/ng_ether.c
@@ -711,6 +711,7 @@ ng_ether_rcv_lower(hook_p hook, item_p item)
static int
ng_ether_rcv_upper(hook_p hook, item_p item)
{
+ struct epoch_tracker et;
struct mbuf *m;
const node_p node = NG_HOOK_NODE(hook);
const priv_p priv = NG_NODE_PRIVATE(node);
@@ -738,7 +739,9 @@ ng_ether_rcv_upper(hook_p hook, item_p item)
}
/* Route packet back in */
+ NET_EPOCH_ENTER(et);
ether_demux(ifp, m);
+ NET_EPOCH_EXIT(et);
return (0);
}
diff --git a/sys/netgraph/ng_iface.c b/sys/netgraph/ng_iface.c
index f1ddce70c86d5..605a1f7d9e24b 100644
--- a/sys/netgraph/ng_iface.c
+++ b/sys/netgraph/ng_iface.c
@@ -690,6 +690,7 @@ ng_iface_rcvdata(hook_p hook, item_p item)
const priv_p priv = NG_NODE_PRIVATE(NG_HOOK_NODE(hook));
const iffam_p iffam = get_iffam_from_hook(priv, hook);
struct ifnet *const ifp = priv->ifp;
+ struct epoch_tracker et;
struct mbuf *m;
int isr;
@@ -731,7 +732,9 @@ ng_iface_rcvdata(hook_p hook, item_p item)
}
random_harvest_queue(m, sizeof(*m), RANDOM_NET_NG);
M_SETFIB(m, ifp->if_fib);
+ NET_EPOCH_ENTER(et);
netisr_dispatch(isr, m);
+ NET_EPOCH_EXIT(et);
return (0);
}
diff --git a/sys/netgraph/ng_ip_input.c b/sys/netgraph/ng_ip_input.c
index 5e6dce38f6d18..88e0e11c08d32 100644
--- a/sys/netgraph/ng_ip_input.c
+++ b/sys/netgraph/ng_ip_input.c
@@ -125,8 +125,13 @@ ngipi_rcvdata(hook_p hook, item_p item)
NG_FREE_ITEM(item);
if (curthread->td_ng_outbound)
netisr_queue(NETISR_IP, m);
- else
+ else {
+ struct epoch_tracker et;
+
+ NET_EPOCH_ENTER(et);
netisr_dispatch(NETISR_IP, m);
+ NET_EPOCH_EXIT(et);
+ }
return 0;
}