On 22/09/16(Thu) 10:17, David Hill wrote:
> On Thu, Sep 22, 2016 at 04:09:37PM +0200, Sebastien Marie wrote:
> > Hi,
> > 
> > After rebuilding kernel under i386, I experimented splassert.
> > 
> > Here is a shorten backtrace handwritten:
> > 
> > splassert: sorwakeup: want 64 have 0
> > Starting stack trace...
> > splassertfail(...)
> > splassertfail(...)
> > splassertcheck(...)
> > sorwakeup(...)
> > route_input(...)
> > rt_ifmsg(...)
> > ifioctl(...)
> > sys_ioctl(...)
> > syscall(...)
> > --- syscall (number 959474688) ---
> > 
> > (I could rewrite the complete version on request as I shoted pictures
> > and it is reproductible easily).
> > 
> > It occurs at boottime during network starting.
> > 
> > My configuration is simple:
> > $ cat /etc/hostname.bce0
> > dhcp
> > rtsol
> > 
> > The splassert is trigged during `rtsol' processing, as removing it makes
> > the laptop to boot.
> > 
> > Below the dmesg (while running without ipv6).
> > -- 
> > Sebastien Marie
> 
> I hit this too.  Is this the proper fix?

It is, I just committed it, thanks!

> Index: if.c
> ===================================================================
> RCS file: /cvs/src/sys/net/if.c,v
> retrieving revision 1.449
> diff -u -p -r1.449 if.c
> --- if.c      20 Sep 2016 16:14:43 -0000      1.449
> +++ if.c      21 Sep 2016 16:51:39 -0000
> @@ -1898,7 +1898,9 @@ ifioctl(struct socket *so, u_long cmd, c
>  
>               ifp->if_xflags = (ifp->if_xflags & IFXF_CANTCHANGE) |
>                       (ifr->ifr_flags & ~IFXF_CANTCHANGE);
> +             s = splsoftnet();
>               rt_ifmsg(ifp);
> +             splx(s);
>               break;
>  
>       case SIOCSIFMETRIC:
> 

Reply via email to