Hi, We hit it on 11.3. So I am going to MFC it.
On Tue, Dec 31, 2019, 9:37 PM Kubilay Kocak <ko...@freebsd.org> wrote: > On 1/01/2020 5:58 am, Alexander Motin wrote: > > Author: mav > > Date: Tue Dec 31 18:58:29 2019 > > New Revision: 356240 > > URL: https://svnweb.freebsd.org/changeset/base/356240 > > > > Log: > > Relax locking of carp_forus(). > > > > This fixes deadlock between CARP and bridge. Bridge calls this > function > > taking CARP lock while holding bridge lock. Same time CARP tries to > send > > its announcements via the bridge while holding CARP lock. > > > > Use of CARP_LOCK() here does not solve anything, since sc_addr is > constant > > while race on sc_state is harmless and use of the lock does not close > it. > > > > Reviewed by: glebius > > MFC after: 2 weeks > > Sponsored by: iXsystems, Inc. > > > > Modified: > > head/sys/netinet/ip_carp.c > > > > Modified: head/sys/netinet/ip_carp.c > > > ============================================================================== > > --- head/sys/netinet/ip_carp.c Tue Dec 31 18:28:25 2019 > (r356239) > > +++ head/sys/netinet/ip_carp.c Tue Dec 31 18:58:29 2019 > (r356240) > > @@ -1230,14 +1230,15 @@ carp_forus(struct ifnet *ifp, u_char *dhost) > > > > CIF_LOCK(ifp->if_carp); > > IFNET_FOREACH_CARP(ifp, sc) { > > - CARP_LOCK(sc); > > + /* > > + * CARP_LOCK() is not here, since would protect nothing, > but > > + * cause deadlock with if_bridge, calling this under its > lock. > > + */ > > if (sc->sc_state == MASTER && !bcmp(dhost, > LLADDR(&sc->sc_addr), > > ETHER_ADDR_LEN)) { > > - CARP_UNLOCK(sc); > > CIF_UNLOCK(ifp->if_carp); > > return (1); > > } > > - CARP_UNLOCK(sc); > > } > > CIF_UNLOCK(ifp->if_carp); > > > > _______________________________________________ > > svn-src-head@freebsd.org mailing list > > https://lists.freebsd.org/mailman/listinfo/svn-src-head > > To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org" > > > > Hi Alexander, > > Is this a only-head-impacted fix, or does the issue impact stable/12,11 > too, warranting MFC ? > _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"