From 93474aed34496849c1c4cef2b84360ad0ea1e036 Mon Sep 17 00:00:00 2001 From: benoit Date: Thu, 3 Jan 2008 15:42:29 +0000 Subject: [PATCH] Put an appropriate condition for starting CABQ (same as in madwifi-dfs code). Don't process XR queue separately as it's already done in the loop git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3114 0192ed92-7a03-0410-a25b-9323aeb14dbd --- ath/if_ath.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ath/if_ath.c b/ath/if_ath.c index 26121bb..4292e23 100644 --- a/ath/if_ath.c +++ b/ath/if_ath.c @@ -4569,7 +4569,13 @@ ath_beacon_generate(struct ath_softc *sc, struct ieee80211vap *vap, int *needmar /* append the private VAP mcast list to the cabq */ ATH_TXQ_MOVE_MCASTQ(&avp->av_mcastq, cabq); /* NB: gated by beacon so safe to start here */ - ath_hal_txstart(ah, cabq->axq_qnum); + if (cabq->axq_depth > 0) { + if (!ath_hal_txstart(ah, cabq->axq_qnum)) { + DPRINTF(sc, ATH_DEBUG_TX_PROC, + "%s: failed to start CABQ\n", + __func__); + } + } ATH_TXQ_UNLOCK_IRQ_INSIDE(cabq); ATH_TXQ_UNLOCK_IRQ(&avp->av_mcastq); } @@ -8033,14 +8039,11 @@ ath_tx_tasklet(TQUEUE_ARG data) struct ath_softc *sc = dev->priv; unsigned int i; - /* Process each active queue. */ + /* Process each active queue. This includes sc_cabq, sc_xrtq and + * sc_uapsdq */ for (i = 0; i < HAL_NUM_TX_QUEUES; i++) if (ATH_TXQ_SETUP(sc, i) && txqactive(sc->sc_ah, i)) ath_tx_processq(sc, &sc->sc_txq[i]); -#ifdef ATH_SUPERG_XR - if (sc->sc_xrtxq && txqactive(sc->sc_ah, sc->sc_xrtxq->axq_qnum)) - ath_tx_processq(sc, sc->sc_xrtxq); -#endif netif_wake_queue(dev); -- 2.35.1