summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2006-04-16 18:14:01 +0000
committersam <sam@FreeBSD.org>2006-04-16 18:14:01 +0000
commit6ecdb098d347dc853ffb2fd7e09f4a8ca9fca721 (patch)
treea51222875a399852cda2cbc4b1353542b69258e5 /sys/dev/ath
parent51c1e211e6347c7971449bf097605b8814176d5c (diff)
downloadFreeBSD-src-6ecdb098d347dc853ffb2fd7e09f4a8ca9fca721.zip
FreeBSD-src-6ecdb098d347dc853ffb2fd7e09f4a8ca9fca721.tar.gz
Unbreak cabq handling: check the s/w q, not the h/w q as the frames
have not been passed to the h/w yet. This remedies watchdog timeout of buffered multicast frames in hostap mode. While here eliminate an extraneous check; ieee80211_beacon_update sets the tim bit based on ncabq != 0 so there's no reason to check it too. Noticed by: Christophe Prevotaux
Diffstat (limited to 'sys/dev/ath')
-rw-r--r--sys/dev/ath/if_ath.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index a50d3cd..c5be72d 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -2042,7 +2042,7 @@ ath_beacon_proc(void *arg, int pending)
* of the TIM bitmap).
*/
m = bf->bf_m;
- ncabq = ath_hal_numtxpending(ah, sc->sc_cabq->axq_qnum);
+ ncabq = sc->sc_cabq->axq_depth;
if (ieee80211_beacon_update(ic, bf->bf_node, &sc->sc_boff, m, ncabq)) {
/* XXX too conservative? */
bus_dmamap_unload(sc->sc_dmat, bf->bf_dmamap);
@@ -2102,7 +2102,7 @@ ath_beacon_proc(void *arg, int pending)
* Enable the CAB queue before the beacon queue to
* insure cab frames are triggered by this beacon.
*/
- if (ncabq != 0 && (sc->sc_boff.bo_tim[4] & 1)) /* NB: only at DTIM */
+ if (sc->sc_boff.bo_tim[4] & 1) /* NB: only at DTIM */
ath_hal_txstart(ah, sc->sc_cabq->axq_qnum);
ath_hal_puttxbuf(ah, sc->sc_bhalq, bf->bf_daddr);
ath_hal_txstart(ah, sc->sc_bhalq);
OpenPOWER on IntegriCloud