Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Aug 2019 11:31:42 +0000
From:      bugzilla-noreply@freebsd.org
To:        testing@freebsd.org
Subject:   [Bug 238870] sys.netpfil.pf.names.names and sys.netpfil.pf.synproxy.synproxy cause panic
Message-ID:  <bug-238870-32464-NQ0xpk5fNS@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-238870-32464@https.bugs.freebsd.org/bugzilla/>
References:  <bug-238870-32464@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D238870

--- Comment #12 from Kristof Provost <kp@freebsd.org> ---
As an additional clue, I tried taking the IFNET_WLOCK in vnet_if_return(), =
and
while that's clearly too crude (if only because that's a non-sleepable lock=
 and
we sleep during if_vmove()), but it does prevent these panics:

diff --git a/sys/net/if.c b/sys/net/if.c
index 1abb42893a0..b41a1a102cd 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -481,11 +481,13 @@ vnet_if_return(const void *unused __unused)
 {
        struct ifnet *ifp, *nifp;

+       IFNET_WLOCK();
        /* Return all inherited interfaces to their parent vnets. */
        CK_STAILQ_FOREACH_SAFE(ifp, &V_ifnet, if_link, nifp) {
                if (ifp->if_home_vnet !=3D ifp->if_vnet)
                        if_vmove(ifp, ifp->if_home_vnet);
        }
+       IFNET_WUNLOCK();
 }
 VNET_SYSUNINIT(vnet_if_return, SI_SUB_VNET_DONE, SI_ORDER_ANY,
     vnet_if_return, NULL);

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-238870-32464-NQ0xpk5fNS>