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>
