1 --- a/drivers/net/wireless/ath/ath9k/xmit.c
2 +++ b/drivers/net/wireless/ath/ath9k/xmit.c
3 @@ -387,7 +387,6 @@ static void ath_tx_complete_aggr(struct
4 struct ath_frame_info *fi;
11 @@ -484,12 +483,10 @@ static void ath_tx_complete_aggr(struct
14 } else if (fi->retries < ATH_MAX_SW_RETRIES) {
15 - if (!(ts->ts_status & ATH9K_TXERR_FILT) ||
17 + if (txok || !an->sleeping)
18 ath_tx_set_retry(sc, txq, bf->bf_mpdu,
21 - clear_filter = true;
25 @@ -568,11 +565,13 @@ static void ath_tx_complete_aggr(struct
26 ieee80211_sta_set_tim(sta);
28 spin_lock_bh(&txq->axq_lock);
30 - tid->ac->clear_ps_filter = true;
31 skb_queue_splice(&bf_pending, &tid->buf_q);
33 + if (!an->sleeping) {
34 ath_tx_queue_tid(txq, tid);
36 + if (ts->ts_status & ATH9K_TXERR_FILT)
37 + tid->ac->clear_ps_filter = true;
39 spin_unlock_bh(&txq->axq_lock);