| 1287 | } |
| 1288 | |
| 1289 | static void |
| 1290 | lagg_stop(struct lagg_softc *sc) |
| 1291 | { |
| 1292 | struct ifnet *ifp = sc->sc_ifp; |
| 1293 | |
| 1294 | LAGG_XLOCK_ASSERT(sc); |
| 1295 | |
| 1296 | if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) |
| 1297 | return; |
| 1298 | |
| 1299 | ifp->if_drv_flags &= ~IFF_DRV_RUNNING; |
| 1300 | |
| 1301 | lagg_proto_stop(sc); |
| 1302 | |
| 1303 | mtx_lock(&sc->sc_mtx); |
| 1304 | callout_stop(&sc->sc_watchdog); |
| 1305 | mtx_unlock(&sc->sc_mtx); |
| 1306 | |
| 1307 | callout_drain(&sc->sc_watchdog); |
| 1308 | } |
| 1309 | |
| 1310 | static int |
| 1311 | lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) |
no test coverage detected