On 15/05/15(Fri) 15:53, Martin Pieuchot wrote: > 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.
Anyone? > 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: >