Date: Tue, 14 Aug 2012 12:44:26 +0400 From: "Andrey V. Elsukov" <ae@FreeBSD.org> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-net@freebsd.org Subject: Re: kern/168742: detaching of ethernet adapter with configured vlans leads to panic Message-ID: <502A0FEA.1020808@FreeBSD.org> In-Reply-To: <201208070805.43687.jhb@freebsd.org> References: <201208070448.q774mVNm080900@freefall.freebsd.org> <201208070805.43687.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 07.08.2012 16:05, John Baldwin wrote: > I think the problem is the assertion is wrong. We could add a new DETACHING > flag, but I think the simplest fix is to just remove it. I'm not sure if a > similar assertion in if_delmulti_ifma() should also be removed. Hi, John. This fixes the problem, thanks. > Index: if.c > =================================================================== > --- if.c (revision 238992) > +++ if.c (working copy) > @@ -3058,19 +3058,7 @@ if_delmulti(struct ifnet *ifp, struct sockaddr *sa > { > struct ifmultiaddr *ifma; > int lastref; > -#ifdef INVARIANTS > - struct ifnet *oifp; > > - IFNET_RLOCK_NOSLEEP(); > - TAILQ_FOREACH(oifp, &V_ifnet, if_link) > - if (ifp == oifp) > - break; > - if (ifp != oifp) > - ifp = NULL; > - IFNET_RUNLOCK_NOSLEEP(); > - > - KASSERT(ifp != NULL, ("%s: ifnet went away", __func__)); > -#endif > if (ifp == NULL) > return (ENOENT); > > -- WBR, Andrey V. Elsukov
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?502A0FEA.1020808>