by examine the lock mechanism in if_lagg.c, I find race conditions as follows: in function lagg_port_destroy: 890 ifp->if_lagg = NULL; is protected by rm_wlock on its sc while in function lagg_input: 1656 struct lagg_port *lp = ifp->if_lagg; 1657 struct lagg_softc *sc = lp->lp_softc; is not protected by any locks. possible fixed: replace the locks in if_lagg.c with a global rmlock and check the value of ifp->if_lagg in lagg_input to be not null after read locked Many thanks Zhouyi