aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenlei Huang <zlei@FreeBSD.org>2023-03-16 10:00:13 +0000
committerZhenlei Huang <zlei@FreeBSD.org>2023-03-22 15:46:43 +0000
commitaf28d08bda99d7a841743f75d736cf677ab0ad0e (patch)
treef60706da4871ed721fe162324f7bda5ace341732
parent94c208a07f70512aa3aadcde8b3ee7f605ae6bf3 (diff)
downloadsrc-af28d08bda99d7a841743f75d736cf677ab0ad0e.tar.gz
src-af28d08bda99d7a841743f75d736cf677ab0ad0e.zip
carp: carp_master_down_locked() requires net epoch
Reviewed by: kp Approved by: re (gjb) Fixes: 1d126e9b9474 carp: Widen epoch coverage MFC after: 1 day Differential Revision: https://reviews.freebsd.org/D39113 (cherry picked from commit 49cad3daf2a3abe8270f71ee5b15b8990a19529d) (cherry picked from commit c15ceae9e7f98f7e74ff7848b3aff7176c7e263a)
-rw-r--r--sys/netinet/ip_carp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c
index e84a85ebc11e..b6326b14c802 100644
--- a/sys/netinet/ip_carp.c
+++ b/sys/netinet/ip_carp.c
@@ -1732,6 +1732,7 @@ carp_carprcp(struct carpreq *carpr, struct carp_softc *sc, int priv)
int
carp_ioctl(struct ifreq *ifr, u_long cmd, struct thread *td)
{
+ struct epoch_tracker et;
struct carpreq carpr;
struct ifnet *ifp;
struct carp_softc *sc = NULL;
@@ -1816,8 +1817,10 @@ carp_ioctl(struct ifreq *ifr, u_long cmd, struct thread *td)
carp_delroute(sc);
break;
case MASTER:
+ NET_EPOCH_ENTER(et);
carp_master_down_locked(sc,
"user requested via ifconfig");
+ NET_EPOCH_EXIT(et);
break;
default:
break;