29 lines
		
	
	
		
			1022 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1022 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From: Felix Fietkau <nbd@nbd.name>
 | |
| Date: Thu, 2 Dec 2021 13:30:05 +0100
 | |
| Subject: [PATCH] mac80211: send ADDBA requests using the tid/queue of the
 | |
|  aggregation session
 | |
| 
 | |
| Sending them out on a different queue can cause a race condition where a
 | |
| number of packets in the queue may be discarded by the receiver, because
 | |
| the ADDBA request is sent too early.
 | |
| This affects any driver with software A-MPDU setup which does not allocate
 | |
| packet seqno in hardware on tx, regardless of whether iTXQ is used or not.
 | |
| The only driver I've seen that explicitly deals with this issue internally
 | |
| is mwl8k.
 | |
| 
 | |
| Cc: stable@vger.kernel.org
 | |
| Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | |
| ---
 | |
| 
 | |
| --- a/net/mac80211/agg-tx.c
 | |
| +++ b/net/mac80211/agg-tx.c
 | |
| @@ -106,7 +106,7 @@ static void ieee80211_send_addba_request
 | |
|  	mgmt->u.action.u.addba_req.start_seq_num =
 | |
|  					cpu_to_le16(start_seq_num << 4);
 | |
|  
 | |
| -	ieee80211_tx_skb(sdata, skb);
 | |
| +	ieee80211_tx_skb_tid(sdata, skb, tid);
 | |
|  }
 | |
|  
 | |
|  void ieee80211_send_bar(struct ieee80211_vif *vif, u8 *ra, u16 tid, u16 ssn)
 | 
