ASSERT_SERIALIZED(ifp->if_serializer);
- if (ifp->if_flags & IFF_RUNNING)
- return;
-
/* Cancel pending I/O and flush buffers. */
bge_stop(sc);
bge_reset(sc);
error = EINVAL;
} else if (ifp->if_mtu != ifr->ifr_mtu) {
ifp->if_mtu = ifr->ifr_mtu;
- ifp->if_flags &= ~IFF_RUNNING;
- bge_init(sc);
+ if (ifp->if_flags & IFF_RUNNING)
+ bge_init(sc);
}
break;
case SIOCSIFFLAGS:
} else {
bge_init(sc);
}
- } else {
- if (ifp->if_flags & IFF_RUNNING)
- bge_stop(sc);
+ } else if (ifp->if_flags & IFF_RUNNING) {
+ bge_stop(sc);
}
sc->bge_if_flags = ifp->if_flags;
break;
if_printf(ifp, "watchdog timeout -- resetting\n");
- ifp->if_flags &= ~IFF_RUNNING;
bge_init(sc);
ifp->if_oerrors++;