Index: dev/an/if_an.c =================================================================== RCS file: /usr/store/mlaier/fcvs/src/sys/dev/an/if_an.c,v retrieving revision 1.62 diff -u -r1.62 if_an.c --- dev/an/if_an.c 17 Jun 2004 02:19:11 -0000 1.62 +++ dev/an/if_an.c 31 Jul 2004 02:13:44 -0000 @@ -760,7 +760,9 @@ ifp->if_watchdog = an_watchdog; ifp->if_init = an_init; ifp->if_baudrate = 10000000; - ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; + IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN); + ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; + IFQ_SET_READY(&ifp->if_snd); bzero(sc->an_config.an_nodename, sizeof(sc->an_config.an_nodename)); bcopy(AN_DEFAULT_NODENAME, sc->an_config.an_nodename, @@ -1254,7 +1256,7 @@ /* Re-enable interrupts. */ CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), AN_INTRS(sc->mpi350)); - if ((ifp->if_flags & IFF_UP) && (ifp->if_snd.ifq_head != NULL)) + if ((ifp->if_flags & IFF_UP) && !IFQ_DRV_IS_EMPTY(&ifp->if_snd)) an_start(ifp); AN_UNLOCK(sc); @@ -2655,7 +2657,7 @@ /* We can't send in monitor mode so toss any attempts. */ if (sc->an_monitor && (ifp->if_flags & IFF_PROMISC)) { for (;;) { - IF_DEQUEUE(&ifp->if_snd, m0); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m0); if (m0 == NULL) break; m_freem(m0); @@ -2669,7 +2671,7 @@ bzero((char *)&tx_frame_802_3, sizeof(tx_frame_802_3)); while (sc->an_rdata.an_tx_ring[idx] == 0) { - IF_DEQUEUE(&ifp->if_snd, m0); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m0); if (m0 == NULL) break; @@ -2730,7 +2732,7 @@ while (sc->an_rdata.an_tx_empty || idx != sc->an_rdata.an_tx_cons) { - IF_DEQUEUE(&ifp->if_snd, m0); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m0); if (m0 == NULL) { break; } Index: dev/ath/if_ath.c =================================================================== RCS file: /usr/store/mlaier/fcvs/src/sys/dev/ath/if_ath.c,v retrieving revision 1.54 diff -u -r1.54 if_ath.c --- dev/ath/if_ath.c 5 Apr 2004 04:42:42 -0000 1.54 +++ dev/ath/if_ath.c 31 Jul 2004 02:13:56 -0000 @@ -304,7 +304,9 @@ ifp->if_watchdog = ath_watchdog; ifp->if_ioctl = ath_ioctl; ifp->if_init = ath_init; - ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; + IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN); + ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; + IFQ_SET_READY(&ifp->if_snd); ic->ic_softc = sc; ic->ic_newassoc = ath_newassoc; @@ -662,7 +664,7 @@ ath_stoprecv(sc); else sc->sc_rxlink = NULL; - IF_DRAIN(&ifp->if_snd); + IFQ_DRV_PURGE(&ifp->if_snd); ath_beacon_free(sc); ieee80211_new_state(ic, IEEE80211_S_INIT, -1); if (!sc->sc_invalid) @@ -759,7 +761,7 @@ ATH_TXBUF_UNLOCK(sc); break; } - IF_DEQUEUE(&ifp->if_snd, m); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); /* XXX: LOCK */ if (m == NULL) { ATH_TXBUF_LOCK(sc); TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); Index: dev/hme/if_hme.c =================================================================== RCS file: /usr/store/mlaier/fcvs/src/sys/dev/hme/if_hme.c,v retrieving revision 1.27 diff -u -r1.27 if_hme.c --- dev/hme/if_hme.c 12 Jun 2004 02:23:06 -0000 1.27 +++ dev/hme/if_hme.c 31 Jul 2004 02:14:06 -0000 @@ -276,7 +276,9 @@ ifp->if_ioctl = hme_ioctl; ifp->if_init = hme_init; ifp->if_watchdog = hme_watchdog; - ifp->if_snd.ifq_maxlen = HME_NTXQ; + IFQ_SET_MAXLEN(&ifp->if_snd, HME_NTXQ); + ifp->if_snd.ifq_drv_maxlen = HME_NTXQ; + IFQ_SET_READY(&ifp->if_snd); hme_mifinit(sc); @@ -1002,14 +1004,14 @@ error = 0; for (;;) { - IF_DEQUEUE(&ifp->if_snd, m); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); if (m == NULL) break; error = hme_load_txmbuf(sc, m); if (error == -1) { ifp->if_flags |= IFF_OACTIVE; - IF_PREPEND(&ifp->if_snd, m); + IFQ_DRV_PREPEND(&ifp->if_snd, m); break; } else if (error > 0) { printf("hme_start: error %d while loading mbuf\n", Index: dev/if_ndis/if_ndis.c =================================================================== RCS file: /usr/store/mlaier/fcvs/src/sys/dev/if_ndis/if_ndis.c,v retrieving revision 1.65 diff -u -r1.65 if_ndis.c --- dev/if_ndis/if_ndis.c 7 Jul 2004 17:46:30 -0000 1.65 +++ dev/if_ndis/if_ndis.c 31 Jul 2004 02:14:15 -0000 @@ -481,7 +481,13 @@ ifp->if_watchdog = ndis_watchdog; ifp->if_init = ndis_init; ifp->if_baudrate = 10000000; +#if __FreeBSD_version < 502114 ifp->if_snd.ifq_maxlen = 50; +#else + IFQ_SET_MAXLEN(&ifp->if_snd, 50); + ifp->if_snd.ifq_drv_maxlen = 25; + IFQ_SET_READY(&ifp->if_snd); +#endif ifp->if_capenable = ifp->if_capabilities; ifp->if_hwassist = sc->ndis_hwassist; @@ -1135,7 +1141,11 @@ struct ifnet *ifp; ifp = arg; +#if __FreeBSD_version < 502114 if (ifp->if_snd.ifq_head != NULL) +#else + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) +#endif ndis_start(ifp); return; } @@ -1175,15 +1185,24 @@ p0 = &sc->ndis_txarray[sc->ndis_txidx]; while(sc->ndis_txpending) { +#if __FreeBSD_version < 502114 IF_DEQUEUE(&ifp->if_snd, m); +#else + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); +#endif if (m == NULL) break; sc->ndis_txarray[sc->ndis_txidx] = NULL; if (ndis_mtop(m, &sc->ndis_txarray[sc->ndis_txidx])) { +#if __FreeBSD_version >= 502114 + IFQ_DRV_PREPEND(&ifp->if_snd, m); +#endif NDIS_UNLOCK(sc); +#if __FreeBSD_version < 502114 IF_PREPEND(&ifp->if_snd, m); +#endif return; } Index: dev/wi/if_wi.c =================================================================== RCS file: /usr/store/mlaier/fcvs/src/sys/dev/wi/if_wi.c,v retrieving revision 1.167 diff -u -r1.167 if_wi.c --- dev/wi/if_wi.c 13 Jun 2004 17:29:07 -0000 1.167 +++ dev/wi/if_wi.c 31 Jul 2004 02:14:31 -0000 @@ -114,12 +114,6 @@ #include #include -#if 0 /* ALTQ */ -#define IF_POLL(ifq, m) ((m) = (ifq)->ifq_head) -#define IFQ_POLL(ifq, m) IF_POLL((ifq), (m)) -#define IFQ_DEQUEUE(ifq, m) IF_DEQUEUE((ifq), (m)) -#endif - static void wi_start(struct ifnet *); static int wi_reset(struct wi_softc *); static void wi_watchdog(struct ifnet *); @@ -308,7 +302,9 @@ ifp->if_start = wi_start; ifp->if_watchdog = wi_watchdog; ifp->if_init = wi_init; - ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; + IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN); + ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; + IFQ_SET_READY(&ifp->if_snd); ic->ic_phytype = IEEE80211_T_DS; ic->ic_opmode = IEEE80211_M_STA; @@ -616,7 +612,7 @@ wi_info_intr(sc); if ((ifp->if_flags & IFF_OACTIVE) == 0 && (sc->sc_flags & WI_FLAGS_OUTRANGE) == 0 && - _IF_QLEN(&ifp->if_snd) != 0) + !IFQ_DRV_IS_EMPTY(&ifp->if_snd)) wi_start(ifp); /* Re-enable interrupts. */ @@ -906,14 +902,14 @@ } else { if (ic->ic_state != IEEE80211_S_RUN) break; - IFQ_POLL(&ifp->if_snd, m0); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m0); if (m0 == NULL) break; if (sc->sc_txd[cur].d_len != 0) { + IFQ_DRV_PREPEND(&ifp->if_snd, m0); ifp->if_flags |= IFF_OACTIVE; break; } - IFQ_DEQUEUE(&ifp->if_snd, m0); ifp->if_opackets++; m_copydata(m0, 0, ETHER_HDR_LEN, (caddr_t)&frmhdr.wi_ehdr); Index: pci/if_vr.c =================================================================== RCS file: /usr/store/mlaier/fcvs/src/sys/pci/if_vr.c,v retrieving revision 1.90 diff -u -r1.90 if_vr.c --- pci/if_vr.c 9 Jul 2004 00:17:14 -0000 1.90 +++ pci/if_vr.c 31 Jul 2004 02:14:40 -0000 @@ -736,7 +736,9 @@ ifp->if_watchdog = vr_watchdog; ifp->if_init = vr_init; ifp->if_baudrate = 10000000; + IFQ_SET_MAXLEN(&ifp->if_snd, VR_TX_LIST_CNT - 1); ifp->if_snd.ifq_maxlen = VR_TX_LIST_CNT - 1; + IFQ_SET_READY(&ifp->if_snd); #ifdef DEVICE_POLLING ifp->if_capabilities |= IFCAP_POLLING; #endif @@ -1167,7 +1169,7 @@ sc->rxcycles = count; vr_rxeof(sc); vr_txeof(sc); - if (ifp->if_snd.ifq_head != NULL) + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { vr_start_locked(ifp); if (cmd == POLL_AND_CHECK_STATUS) { @@ -1310,7 +1312,7 @@ /* Re-enable interrupts. */ CSR_WRITE_2(sc, VR_IMR, VR_INTRS); - if (_IF_QLEN(&ifp->if_snd) != 0) + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) vr_start_locked(ifp); done_locked: @@ -1389,14 +1391,14 @@ cur_tx = sc->vr_cdata.vr_tx_prod; while (cur_tx->vr_mbuf == NULL) { - IF_DEQUEUE(&ifp->if_snd, m_head); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head); if (m_head == NULL) break; /* Pack the data into the descriptor. */ if (vr_encap(sc, cur_tx, m_head)) { /* Rollback, send what we were able to encap. */ - IF_PREPEND(&ifp->if_snd, m_head); + IFQ_DRV_PREPEND(&ifp->if_snd, m_head); break; } @@ -1621,7 +1623,7 @@ vr_reset(sc); vr_init_locked(sc); - if (ifp->if_snd.ifq_head != NULL) + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) vr_start_locked(ifp); VR_UNLOCK(sc);