Index: stable/10/sys/net/if_lagg.c =================================================================== --- stable/10/sys/net/if_lagg.c +++ stable/10/sys/net/if_lagg.c @@ -1058,9 +1058,25 @@ /* Set to LAGG_PROTO_NONE during the attach. */ LAGG_WLOCK(sc); if (sc->sc_proto != LAGG_PROTO_NONE) { + int (*sc_detach)(struct lagg_softc *sc); + + /* Reset protocol and pointers */ sc->sc_proto = LAGG_PROTO_NONE; - if (sc->sc_detach != NULL) - sc->sc_detach(sc); + sc_detach = sc->sc_detach; + sc->sc_detach = NULL; + sc->sc_start = NULL; + sc->sc_input = NULL; + sc->sc_port_create = NULL; + sc->sc_port_destroy = NULL; + sc->sc_linkstate = NULL; + sc->sc_init = NULL; + sc->sc_stop = NULL; + sc->sc_lladdr = NULL; + sc->sc_req = NULL; + sc->sc_portreq = NULL; + + if (sc_detach != NULL) + sc_detach(sc); else LAGG_WUNLOCK(sc); } else