Some more if_output() conversion. The xl bits are here because I'd like to reduce the number of places where IFQ_ENQUEUE() is used.
After applying this diff you should only have a couple left. Ok? Index: dev/usb/if_upl.c =================================================================== RCS file: /cvs/src/sys/dev/usb/if_upl.c,v retrieving revision 1.64 diff -u -p -r1.64 if_upl.c --- dev/usb/if_upl.c 10 Apr 2015 08:41:43 -0000 1.64 +++ dev/usb/if_upl.c 15 May 2015 13:43:51 -0000 @@ -888,28 +888,5 @@ int upl_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, struct rtentry *rt0) { - int s, len, error; - - DPRINTFN(10,("%s: %s: enter\n", - ((struct upl_softc *)ifp->if_softc)->sc_dev.dv_xname, - __func__)); - - len = m->m_pkthdr.len; - s = splnet(); - /* - * Queue message on interface, and start output if interface - * not yet active. - */ - IFQ_ENQUEUE(&ifp->if_snd, m, NULL, error); - if (error) { - /* mbuf is already freed */ - splx(s); - return (error); - } - ifp->if_obytes += len; - if ((ifp->if_flags & IFF_OACTIVE) == 0) - (*ifp->if_start)(ifp); - splx(s); - - return (0); + return (if_output(ifp, m)); } Index: dev/ic/xl.c =================================================================== RCS file: /cvs/src/sys/dev/ic/xl.c,v retrieving revision 1.123 diff -u -p -r1.123 xl.c --- dev/ic/xl.c 24 Mar 2015 11:23:02 -0000 1.123 +++ dev/ic/xl.c 15 May 2015 13:43:24 -0000 @@ -177,9 +177,6 @@ int xl_list_tx_init_90xB(struct xl_softc void xl_wait(struct xl_softc *); void xl_mediacheck(struct xl_softc *); void xl_choose_xcvr(struct xl_softc *, int); -#ifdef notdef -void xl_testpacket(struct xl_softc *); -#endif int xl_miibus_readreg(struct device *, int, int); void xl_miibus_writereg(struct device *, int, int, int); @@ -659,35 +656,6 @@ xl_iff_905b(struct xl_softc *sc) XL_SEL_WIN(7); } - -#ifdef notdef -void -xl_testpacket(struct xl_softc *sc) -{ - struct mbuf *m; - struct ifnet *ifp; - int error; - - ifp = &sc->sc_arpcom.ac_if; - - MGETHDR(m, M_DONTWAIT, MT_DATA); - - if (m == NULL) - return; - - memcpy(mtod(m, struct ether_header *)->ether_dhost, - &sc->sc_arpcom.ac_enaddr, ETHER_ADDR_LEN); - memcpy(mtod(m, struct ether_header *)->ether_shost, - &sc->sc_arpcom.ac_enaddr, ETHER_ADDR_LEN); - mtod(m, struct ether_header *)->ether_type = htons(3); - mtod(m, unsigned char *)[14] = 0; - mtod(m, unsigned char *)[15] = 0; - mtod(m, unsigned char *)[16] = 0xE3; - m->m_len = m->m_pkthdr.len = sizeof(struct ether_header) + 3; - IFQ_ENQUEUE(&ifp->if_snd, m, NULL, error); - xl_start(ifp); -} -#endif void xl_setcfg(struct xl_softc *sc) Index: net80211/ieee80211_input.c =================================================================== RCS file: /cvs/src/sys/net80211/ieee80211_input.c,v retrieving revision 1.133 diff -u -p -r1.133 ieee80211_input.c --- net80211/ieee80211_input.c 14 Mar 2015 03:38:51 -0000 1.133 +++ net80211/ieee80211_input.c 15 May 2015 13:43:51 -0000 @@ -827,7 +827,6 @@ ieee80211_deliver_data(struct ieee80211c !(ic->ic_flags & IEEE80211_F_NOBRIDGE) && eh->ether_type != htons(ETHERTYPE_PAE)) { struct ieee80211_node *ni1; - int error, len; if (ETHER_IS_MULTICAST(eh->ether_dhost)) { m1 = m_copym2(m, 0, M_COPYALL, M_DONTWAIT); @@ -843,18 +842,8 @@ ieee80211_deliver_data(struct ieee80211c m = NULL; } } - if (m1 != NULL) { - len = m1->m_pkthdr.len; - IFQ_ENQUEUE(&ifp->if_snd, m1, NULL, error); - if (error) - ifp->if_oerrors++; - else { - if (m != NULL) - ifp->if_omcasts++; - ifp->if_obytes += len; - if_start(ifp); - } - } + if (m1 != NULL) + if_output(ifp, m1); } #endif if (m != NULL) { Index: net80211/ieee80211_output.c =================================================================== RCS file: /cvs/src/sys/net80211/ieee80211_output.c,v retrieving revision 1.94 diff -u -p -r1.94 ieee80211_output.c --- net80211/ieee80211_output.c 14 Mar 2015 03:38:51 -0000 1.94 +++ net80211/ieee80211_output.c 15 May 2015 13:43:51 -0000 @@ -113,8 +113,7 @@ ieee80211_output(struct ifnet *ifp, stru { struct ieee80211_frame *wh; struct m_tag *mtag; - int s, len, error = 0; - u_short mflags; + int error = 0; /* Interface has to be up and running */ if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) != @@ -143,30 +142,7 @@ ieee80211_output(struct ifnet *ifp, stru IEEE80211_FC0_TYPE_CTL) return (EINVAL); - /* - * Queue message on interface without adding any - * further headers, and start output if interface not - * yet active. - */ - mflags = m->m_flags; - len = m->m_pkthdr.len; - s = splnet(); - IFQ_ENQUEUE(&ifp->if_snd, m, NULL, error); - if (error) { - /* mbuf is already freed */ - splx(s); - printf("%s: failed to queue raw tx frame\n", - ifp->if_xname); - return (error); - } - ifp->if_obytes += len; - if (mflags & M_MCAST) - ifp->if_omcasts++; - if ((ifp->if_flags & IFF_OACTIVE) == 0) - (*ifp->if_start)(ifp); - splx(s); - - return (error); + return (if_output(ifp, m)); } fallback: