mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	mac80211: fix queue assignment of aggregation start requests
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		
							parent
							
								
									7e15390056
								
							
						
					
					
						commit
						15d8c7aa74
					
				@ -0,0 +1,28 @@
 | 
			
		||||
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)
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user