On Wed, Sep 21, 2016 at 12:32:50PM -0400, David Hill wrote:
> Hit another.
> 
> splassert: sorwakeup: want 5 have 0
> Starting stack trace...
> splassert_check() at splassert_check+0x78
> sorwakeup() at sorwakeup+0x27
> route_input() at route_input+0x284
> ifioctl() at ifioctl+0x765
> sys_ioctl() at sys_ioctl+0x196
> syscall() at syscall+0x27b
> --- syscall (number 54) ---
> end of kernel
> end trace frame: 0x7f7ffffe72f0, count: 251
> 0x10044651af1a:
> End of stack trace.
>

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