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);
}