mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	CONFIG_MAC80211_MESH isn't defined for this package, rendering the patch
useless. Match protecting the access of sta_info.mesh with the very same
define declaring it.
Fixes 45109f69a6 "mac80211: fix compile error when mesh is disabled"
Signed-off-by: Andre Heider <a.heider@gmail.com>
		
	
			
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 313d8c18385f10957402b475f9b0c209ceab6c5a Mon Sep 17 00:00:00 2001
 | 
						|
From: David Bauer <mail@david-bauer.net>
 | 
						|
Date: Fri, 8 Oct 2021 00:25:19 +0200
 | 
						|
Subject: [PATCH] mac80211: mask nested A-MSDU support for mesh
 | 
						|
 | 
						|
mac80211 incorrectly processes A-MSDUs contained in A-MPDU frames. This
 | 
						|
results in dropped packets and severely impacted throughput.
 | 
						|
 | 
						|
As a workaround, don't indicate support for A-MSDUs contained in
 | 
						|
A-MPDUs. This improves throughput over mesh links by factor 10.
 | 
						|
 | 
						|
Ref: https://github.com/openwrt/mt76/issues/450
 | 
						|
 | 
						|
Signed-off-by: David Bauer <mail@david-bauer.net>
 | 
						|
---
 | 
						|
 net/mac80211/agg-rx.c | 4 +++-
 | 
						|
 1 file changed, 3 insertions(+), 1 deletion(-)
 | 
						|
 | 
						|
--- a/net/mac80211/agg-rx.c
 | 
						|
+++ b/net/mac80211/agg-rx.c
 | 
						|
@@ -251,7 +251,11 @@ static void ieee80211_send_addba_resp(st
 | 
						|
 	mgmt->u.action.u.addba_resp.action_code = WLAN_ACTION_ADDBA_RESP;
 | 
						|
 	mgmt->u.action.u.addba_resp.dialog_token = dialog_token;
 | 
						|
 
 | 
						|
-	capab = u16_encode_bits(amsdu, IEEE80211_ADDBA_PARAM_AMSDU_MASK);
 | 
						|
+	capab = 0;
 | 
						|
+#ifdef CPTCFG_MAC80211_MESH
 | 
						|
+	if (!sta->mesh)
 | 
						|
+#endif
 | 
						|
+		capab = u16_encode_bits(amsdu, IEEE80211_ADDBA_PARAM_AMSDU_MASK);
 | 
						|
 	capab |= u16_encode_bits(policy, IEEE80211_ADDBA_PARAM_POLICY_MASK);
 | 
						|
 	capab |= u16_encode_bits(tid, IEEE80211_ADDBA_PARAM_TID_MASK);
 | 
						|
 	capab |= u16_encode_bits(buf_size, IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK);
 |