summaryrefslogtreecommitdiffstats
path: root/sys/dev/wi
diff options
context:
space:
mode:
authormlaier <mlaier@FreeBSD.org>2004-08-01 23:58:04 +0000
committermlaier <mlaier@FreeBSD.org>2004-08-01 23:58:04 +0000
commit14a50c4ac0247a8950847156b4fc16cf935c14ca (patch)
tree6ebb50d212d74e6c2bdec898a448d868eb8edfb1 /sys/dev/wi
parentb0892abf37d766a8598aa74f40cb2e7585bca172 (diff)
downloadFreeBSD-src-14a50c4ac0247a8950847156b4fc16cf935c14ca.zip
FreeBSD-src-14a50c4ac0247a8950847156b4fc16cf935c14ca.tar.gz
Second part of ALTQ driver modifications, covering:
an(4), ath(4), hme(4), ndis(4), vr(4) and wi(4) Please help testing: http://people.freebsd.org/~mlaier/ALTQ_driver/ Tested by: Vaidas Damosevicius (an, ath, wi) Roman Divacky (vr) Submitted by: yongari (hme)
Diffstat (limited to 'sys/dev/wi')
-rw-r--r--sys/dev/wi/if_wi.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/sys/dev/wi/if_wi.c b/sys/dev/wi/if_wi.c
index 70cff59..486df52 100644
--- a/sys/dev/wi/if_wi.c
+++ b/sys/dev/wi/if_wi.c
@@ -114,12 +114,6 @@ __FBSDID("$FreeBSD$");
#include <dev/wi/if_wireg.h>
#include <dev/wi/if_wivar.h>
-#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 @@ wi_attach(device_t dev)
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_intr(void *arg)
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 @@ wi_start(struct ifnet *ifp)
} 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);
OpenPOWER on IntegriCloud