wifi: mac80211: fix # of MSDU in A-MSDU calculation
authorJohannes Berg <johannes.berg@intel.com>
Sun, 27 Aug 2023 11:05:28 +0000 (14:05 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 11 Sep 2023 10:32:39 +0000 (12:32 +0200)
During my refactoring I wanted to get rid of the switch,
but replaced it with the wrong calculation. Fix that.

Fixes: 175ad2ec89fe ("wifi: mac80211: limit A-MSDU subframes for client too")
Reported-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230827135854.51bf1b8b0adb.Iffbd337fdad2b86ae12f5a39c69fb82b517f7486@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/sta_info.c

index 0c59ab9f9aaa09d7977fc0a4ad035f11fa79fa17..7243c6aa216135ce912dd9da9b86b82c2ed99b77 100644 (file)
@@ -2986,7 +2986,7 @@ void ieee80211_sta_set_max_amsdu_subframes(struct sta_info *sta,
                                   WLAN_EXT_CAPA9_MAX_MSDU_IN_AMSDU_MSB) << 1;
 
        if (val)
-               sta->sta.max_amsdu_subframes = 4 << val;
+               sta->sta.max_amsdu_subframes = 4 << (4 - val);
 }
 
 #ifdef CONFIG_LOCKDEP