1 From d7618300f9f0a3c3f105b3e9f84e1e1c65ef6968 Mon Sep 17 00:00:00 2001
2 From: Sasha Levin <sashal@kernel.org>
3 Date: Fri, 26 Jan 2024 17:09:14 +0800
4 Subject: wifi: mt76: mt7996: disable AMSDU for non-data frames
6 From: Peter Chiu <chui-hao.chiu@mediatek.com>
8 [ Upstream commit 5d5edc09197cd8c705b42a73cdf8ba03db53c033 ]
10 Disable AMSDU for non-data frames to prevent TX token leak issues.
12 Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
13 Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
14 Signed-off-by: Felix Fietkau <nbd@nbd.name>
15 Signed-off-by: Sasha Levin <sashal@kernel.org>
17 drivers/net/wireless/mediatek/mt76/mt7996/mac.c | 5 +++--
18 1 file changed, 3 insertions(+), 2 deletions(-)
20 diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c
21 index 63d34844c1223..0384fb059ddfc 100644
22 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c
23 +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c
24 @@ -732,6 +732,9 @@ mt7996_mac_write_txwi_8023(struct mt7996_dev *dev, __le32 *txwi,
25 FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype);
27 txwi[2] |= cpu_to_le32(val);
30 + txwi[3] |= cpu_to_le32(MT_TXD3_HW_AMSDU);
34 @@ -862,8 +865,6 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
35 val |= MT_TXD3_PROTECT_FRAME;
36 if (info->flags & IEEE80211_TX_CTL_NO_ACK)
37 val |= MT_TXD3_NO_ACK;
39 - val |= MT_TXD3_HW_AMSDU;
41 txwi[3] = cpu_to_le32(val);