Changeset 25428


Ignore:
Timestamp:
2011-02-09T00:35:20+01:00 (7 years ago)
Author:
nbd
Message:

ath9k: improve the power save fix by closing another remaining race condition for setting the TIM bit

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/patches/531-ath9k_fix_ap_ps_buffering.patch

    r25426 r25428  
    9797                                if (bf->bf_next == NULL && bf_last->bf_stale) { 
    9898                                        struct ath_buf *tbf; 
    99 @@ -547,6 +553,8 @@ static void ath_tx_complete_aggr(struct  
     99@@ -546,7 +552,12 @@ static void ath_tx_complete_aggr(struct  
     100  
    100101        /* prepend un-acked frames to the beginning of the pending frame queue */ 
    101102        if (!list_empty(&bf_pending)) { 
     103+               if (an->sleeping) 
     104+                       ieee80211_sta_set_tim(sta); 
     105+ 
    102106                spin_lock_bh(&txq->axq_lock); 
    103107+               if (clear_filter) 
     
    106110                ath_tx_queue_tid(txq, tid); 
    107111                spin_unlock_bh(&txq->axq_lock); 
    108 @@ -816,6 +824,11 @@ static void ath_tx_sched_aggr(struct ath 
     112@@ -816,6 +827,11 @@ static void ath_tx_sched_aggr(struct ath 
    109113                bf = list_first_entry(&bf_q, struct ath_buf, list); 
    110114                bf->bf_lastbf = list_entry(bf_q.prev, struct ath_buf, list); 
     
    118122                if (bf == bf->bf_lastbf) { 
    119123                        fi = get_frame_info(bf->bf_mpdu); 
    120 @@ -896,6 +909,67 @@ void ath_tx_aggr_stop(struct ath_softc * 
     124@@ -896,6 +912,67 @@ void ath_tx_aggr_stop(struct ath_softc * 
    121125        ath_tx_flush_tid(sc, txtid); 
    122126 } 
     
    186190 { 
    187191        struct ath_atx_tid *txtid; 
    188 @@ -1492,7 +1566,6 @@ static int setup_tx_flags(struct sk_buff 
     192@@ -1492,7 +1569,6 @@ static int setup_tx_flags(struct sk_buff 
    189193        struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); 
    190194        int flags = 0; 
     
    194198  
    195199        if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK) 
    196 @@ -1755,6 +1828,9 @@ static void ath_tx_start_dma(struct ath_ 
     200@@ -1755,6 +1831,9 @@ static void ath_tx_start_dma(struct ath_ 
    197201                if (txctl->paprd) 
    198202                        bf->bf_state.bfs_paprd_timestamp = jiffies; 
Note: See TracChangeset for help on using the changeset viewer.