Hello -
IFQ has its own protection, so no need for splnet/splx.
if_gif.c - use for (;;) to match the other drivers.
Index: net/if_gif.c
===================================================================
RCS file: /cvs/src/sys/net/if_gif.c,v
retrieving revision 1.83
diff -u -p -r1.83 if_gif.c
--- net/if_gif.c 5 Dec 2015 10:07:55 -0000 1.83
+++ net/if_gif.c 14 Jan 2016 00:26:10 -0000
@@ -164,13 +164,9 @@ gif_start(struct ifnet *ifp)
{
struct gif_softc *sc = (struct gif_softc*)ifp;
struct mbuf *m;
- int s;
- while (1) {
- s = splnet();
+ for (;;) {
IFQ_DEQUEUE(&ifp->if_snd, m);
- splx(s);
-
if (m == NULL)
break;
Index: net/if_mpe.c
===================================================================
RCS file: /cvs/src/sys/net/if_mpe.c,v
retrieving revision 1.52
diff -u -p -r1.52 if_mpe.c
--- net/if_mpe.c 5 Dec 2015 10:07:55 -0000 1.52
+++ net/if_mpe.c 14 Jan 2016 00:26:10 -0000
@@ -143,16 +143,12 @@ mpestart(struct ifnet *ifp0)
{
struct mbuf *m;
struct sockaddr *sa = (struct sockaddr *)&mpedst;
- int s;
sa_family_t af;
struct rtentry *rt;
struct ifnet *ifp;
for (;;) {
- s = splnet();
IFQ_DEQUEUE(&ifp0->if_snd, m);
- splx(s);
-
if (m == NULL)
return;
Index: net/if_pppx.c
===================================================================
RCS file: /cvs/src/sys/net/if_pppx.c,v
retrieving revision 1.48
diff -u -p -r1.48 if_pppx.c
--- net/if_pppx.c 5 Dec 2015 16:09:09 -0000 1.48
+++ net/if_pppx.c 14 Jan 2016 00:26:10 -0000
@@ -995,15 +995,13 @@ pppx_if_start(struct ifnet *ifp)
{
struct pppx_if *pxi = (struct pppx_if *)ifp->if_softc;
struct mbuf *m;
- int proto, s;
+ int proto;
if (!ISSET(ifp->if_flags, IFF_RUNNING))
return;
for (;;) {
- s = splnet();
IFQ_DEQUEUE(&ifp->if_snd, m);
- splx(s);
if (m == NULL)
break;
Index: net/if_vxlan.c
===================================================================
RCS file: /cvs/src/sys/net/if_vxlan.c,v
retrieving revision 1.35
diff -u -p -r1.35 if_vxlan.c
--- net/if_vxlan.c 5 Dec 2015 10:07:55 -0000 1.35
+++ net/if_vxlan.c 14 Jan 2016 00:26:10 -0000
@@ -275,15 +275,12 @@ void
vxlanstart(struct ifnet *ifp)
{
struct mbuf *m;
- int s;
for (;;) {
- s = splnet();
IFQ_DEQUEUE(&ifp->if_snd, m);
- splx(s);
-
if (m == NULL)
return;
+
ifp->if_opackets++;
#if NBPFILTER > 0