aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2025-01-20 13:24:48 +0000
committerKristof Provost <kp@FreeBSD.org>2025-01-20 13:28:39 +0000
commit38fdcca05d09b4d5426a253d3c484f9481a73ac2 (patch)
tree09e8e8875044268767c812c7e99b0bb2919727ef
parent013784c967f994058f701c1fd2a82a2cc0bd90b0 (diff)
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")
-rw-r--r--sys/netinet/if_ether.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index 502261f5f2d9..88da1b139b1f 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -1353,6 +1353,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) ||
@@ -1362,6 +1363,7 @@ garp_rexmit(void *arg)
return;
}
+ NET_EPOCH_ENTER(et);
CURVNET_SET(ia->ia_ifa.ifa_ifp->if_vnet);
/*
@@ -1393,6 +1395,7 @@ garp_rexmit(void *arg)
}
CURVNET_RESTORE();
+ NET_EPOCH_EXIT(et);
}
/*