Index: if.c =================================================================== RCS file: /cvs/src/sys/net/if.c,v retrieving revision 1.473 diff -u -p -r1.473 if.c --- if.c 4 Jan 2017 03:56:15 -0000 1.473 +++ if.c 10 Jan 2017 00:26:47 -0000 @@ -1806,9 +1806,16 @@ ifioctl(struct socket *so, u_long cmd, c ifp->if_flags = (ifp->if_flags & IFF_CANTCHANGE) | (ifr->ifr_flags & ~IFF_CANTCHANGE); + /* + * XXX: If if_ioctl is not set, or it is but returns ENOTTY + * because SIOCSIFFLAGS isn't handled by the driver, + * IFF_RUNNING will not end up set. + */ if (ifp->if_ioctl != NULL) { error = (*ifp->if_ioctl)(ifp, cmd, data); - if (error != 0) { + if (error == ENOTTY) + error = 0; + else if (error != 0) { ifp->if_flags = oif_flags; break; }