mac80211: Fix insufficient headroom issue for AMSDU
[ Upstream commitf50d2ff8f0] 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:6e0456b545("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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0ad4ddb27e
commit
22b106df73
@@ -3229,7 +3229,9 @@ static bool ieee80211_amsdu_prepare_head(struct ieee80211_sub_if_data *sdata,
|
|||||||
if (info->control.flags & IEEE80211_TX_CTRL_AMSDU)
|
if (info->control.flags & IEEE80211_TX_CTRL_AMSDU)
|
||||||
return true;
|
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;
|
return false;
|
||||||
|
|
||||||
data = skb_push(skb, sizeof(*amsdu_hdr));
|
data = skb_push(skb, sizeof(*amsdu_hdr));
|
||||||
|
|||||||
Reference in New Issue
Block a user