Hello - I believe this is correct.
After mikeb@ committed destroying cloneable interfaces under splsoftnet, these aren't needed anymore. Index: if_mpe.c =================================================================== RCS file: /cvs/src/sys/net/if_mpe.c,v retrieving revision 1.54 diff -u -p -r1.54 if_mpe.c --- if_mpe.c 13 Apr 2016 11:41:15 -0000 1.54 +++ if_mpe.c 21 Sep 2016 01:30:27 -0000 @@ -117,15 +117,12 @@ int mpe_clone_destroy(struct ifnet *ifp) { struct mpe_softc *mpeif = ifp->if_softc; - int s; LIST_REMOVE(mpeif, sc_list); if (mpeif->sc_smpls.smpls_label) { - s = splsoftnet(); rt_ifa_del(&mpeif->sc_ifa, RTF_MPLS, smplstosa(&mpeif->sc_smpls)); - splx(s); } if_detach(ifp); Index: if_mpw.c =================================================================== RCS file: /cvs/src/sys/net/if_mpw.c,v retrieving revision 1.14 diff -u -p -r1.14 if_mpw.c --- if_mpw.c 13 Apr 2016 11:41:15 -0000 1.14 +++ if_mpw.c 21 Sep 2016 01:30:27 -0000 @@ -120,15 +120,12 @@ int mpw_clone_destroy(struct ifnet *ifp) { struct mpw_softc *sc = ifp->if_softc; - int s; ifp->if_flags &= ~IFF_RUNNING; if (sc->sc_smpls.smpls_label) { - s = splsoftnet(); rt_ifa_del(&sc->sc_ifa, RTF_MPLS, smplstosa(&sc->sc_smpls)); - splx(s); } if_ih_remove(ifp, mpw_input, NULL); Index: if_pfsync.c =================================================================== RCS file: /cvs/src/sys/net/if_pfsync.c,v retrieving revision 1.231 diff -u -p -r1.231 if_pfsync.c --- if_pfsync.c 15 Sep 2016 02:00:18 -0000 1.231 +++ if_pfsync.c 21 Sep 2016 01:30:27 -0000 @@ -353,9 +353,7 @@ pfsync_clone_destroy(struct ifnet *ifp) { struct pfsync_softc *sc = ifp->if_softc; struct pfsync_deferral *pd; - int s; - s = splsoftnet(); timeout_del(&sc->sc_bulkfail_tmo); timeout_del(&sc->sc_bulk_tmo); timeout_del(&sc->sc_tmo); @@ -384,7 +382,6 @@ pfsync_clone_destroy(struct ifnet *ifp) free(sc, M_DEVBUF, sizeof(*sc)); pfsyncif = NULL; - splx(s); return (0); }