From 03ef737c544d3dd90a0000c18382db99ccf2ee9a Mon Sep 17 00:00:00 2001 From: Marko Zec Date: Sat, 23 Sep 2023 10:56:56 +0200 Subject: [PATCH] ng_eiface: switch VNETs when injecting mbufs into netgraph A ng_eiface instance may be on lease to a different vnet while remaining tied to its parent vnet. In such circumstances, before injecting mbufs into netgraph, curvnet must be set to that of the ng_eiface's netgraph node. Mark the vnet transition as QUIET, since otherwise it would be recorded as a curvnet recursion when ng_eiface's ifnet resides in the same (parent) vnet as its netgraph node. PR: 274028 Reported by: Dancho Penev MFC after: 1 week --- sys/netgraph/ng_eiface.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/netgraph/ng_eiface.c b/sys/netgraph/ng_eiface.c index 40b1a1128de..a35650f15ed 100644 --- a/sys/netgraph/ng_eiface.c +++ b/sys/netgraph/ng_eiface.c @@ -257,7 +257,9 @@ ng_eiface_start2(node_p node, hook_p hook, void *arg1, int arg2) * freed. */ NG_OUTBOUND_THREAD_REF(); + CURVNET_SET_QUIET(priv->node->nd_vnet); NG_SEND_DATA_ONLY(error, priv->ether, m); + CURVNET_RESTORE(); NG_OUTBOUND_THREAD_UNREF(); /* Update stats */