From ebed92a9751dec5e07c771f796ffc37823b88c93 Mon Sep 17 00:00:00 2001 From: Kristof Provost Date: Mon, 20 Jan 2025 14:24:48 +0100 Subject: [PATCH] netinet: enter epoch in garp_rexmit() garp_rexmit() is a callback, so is not in net_epoch, which arprequest_internal() expects. Enter and exit the net_epoch. PR: 284073 MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 38fdcca05d09b4d5426a253d3c484f9481a73ac2) --- sys/netinet/if_ether.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index a14671528f1..093e00823e3 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -1354,6 +1354,7 @@ sysctl_garp_rexmit(SYSCTL_HANDLER_ARGS) static void garp_rexmit(void *arg) { + struct epoch_tracker et; struct in_ifaddr *ia = arg; if (callout_pending(&ia->ia_garp_timer) || @@ -1363,6 +1364,7 @@ garp_rexmit(void *arg) return; } + NET_EPOCH_ENTER(et); CURVNET_SET(ia->ia_ifa.ifa_ifp->if_vnet); /* @@ -1394,6 +1396,7 @@ garp_rexmit(void *arg) } CURVNET_RESTORE(); + NET_EPOCH_EXIT(et); } /*