svn commit: r356240 - head/sys/netinet
Alexander Motin
mav at freebsd.org
Wed Jan 1 02:41:57 UTC 2020
Hi,
We hit it on 11.3. So I am going to MFC it.
On Tue, Dec 31, 2019, 9:37 PM Kubilay Kocak <koobs at 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 at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/svn-src-head
> > To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
> >
>
> Hi Alexander,
>
> Is this a only-head-impacted fix, or does the issue impact stable/12,11
> too, warranting MFC ?
>
More information about the svn-src-all
mailing list