ath9k: one more queue stop/start fix

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21651 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2010-06-01 19:30:32 +00:00
parent 0666bbc2a7
commit c3e04e54af
1 changed files with 10 additions and 0 deletions

View File

@ -118,6 +118,16 @@
dma_unmap_single(sc->dev, bf->bf_dmacontext, skb->len, DMA_TO_DEVICE); dma_unmap_single(sc->dev, bf->bf_dmacontext, skb->len, DMA_TO_DEVICE);
ath_tx_complete(sc, skb, bf->aphy, tx_flags); ath_tx_complete(sc, skb, bf->aphy, tx_flags);
ath_debug_stat_tx(sc, txq, bf, ts); ath_debug_stat_tx(sc, txq, bf, ts);
@@ -2060,8 +2048,7 @@ static void ath_wake_mac80211_queue(stru
int qnum;
spin_lock_bh(&txq->axq_lock);
- if (txq->stopped &&
- sc->tx.txq[txq->axq_qnum].axq_depth <= (ATH_TXBUF - 20)) {
+ if (txq->stopped && txq->pending_frames < ATH_MAX_QDEPTH) {
qnum = ath_get_mac80211_qnum(txq->axq_qnum, sc);
if (qnum != -1) {
ath_mac80211_start_queue(sc, qnum);
--- a/drivers/net/wireless/ath/ath9k/main.c --- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1026,6 +1026,7 @@ static int ath9k_tx(struct ieee80211_hw @@ -1026,6 +1026,7 @@ static int ath9k_tx(struct ieee80211_hw