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


_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[email protected]"

Reply via email to