kern/168742: detaching of ethernet adapter with configured vlans leads to panic

Andrey V. Elsukov ae at FreeBSD.org
Tue Aug 14 08:44:29 UTC 2012


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




More information about the freebsd-net mailing list