diff options
author | Chih-Kang Chang <gary.chang@realtek.com> | 2021-08-16 16:51:28 +0800 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2021-08-17 15:49:58 +0200 |
commit | f50d2ff8f016b79a2ff4acd5943a1eda40c545d4 (patch) | |
tree | 3785820bb2ff65ac9c7a943935eca79e486eaeed /net/mac80211 | |
parent | 5f9404abdf2ac31c8f4768c39714bfcaca389e3a (diff) | |
download | lwn-f50d2ff8f016b79a2ff4acd5943a1eda40c545d4.tar.gz lwn-f50d2ff8f016b79a2ff4acd5943a1eda40c545d4.zip |
mac80211: Fix insufficient headroom issue for AMSDU
ieee80211_amsdu_realloc_pad() fails to account for extra_tx_headroom,
the original reserved headroom might be eaten. Add the necessary
extra_tx_headroom.
Fixes: 6e0456b54545 ("mac80211: add A-MSDU tx support")
Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://lore.kernel.org/r/20210816085128.10931-2-pkshih@realtek.com
[fix indentation]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/tx.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 1f7571777fb1..2d1193ed3eb5 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -3242,7 +3242,9 @@ static bool ieee80211_amsdu_prepare_head(struct ieee80211_sub_if_data *sdata, if (info->control.flags & IEEE80211_TX_CTRL_AMSDU) return true; - if (!ieee80211_amsdu_realloc_pad(local, skb, sizeof(*amsdu_hdr))) + if (!ieee80211_amsdu_realloc_pad(local, skb, + sizeof(*amsdu_hdr) + + local->hw.extra_tx_headroom)) return false; data = skb_push(skb, sizeof(*amsdu_hdr)); |