developer | d0c8945 | 2024-10-11 16:53:27 +0800 | [diff] [blame^] | 1 | From 86493d14f89cf1c6916bdac4fe2ecfc1b20c84e6 Mon Sep 17 00:00:00 2001 |
developer | 66e89bc | 2024-04-23 14:50:01 +0800 | [diff] [blame] | 2 | From: Michael-CY Lee <michael-cy.lee@mediatek.com> |
| 3 | Date: Tue, 14 Nov 2023 11:27:06 +0800 |
developer | d0c8945 | 2024-10-11 16:53:27 +0800 | [diff] [blame^] | 4 | Subject: [PATCH 042/223] mtk: mt76: mt7996: assign DEAUTH to ALTX queue for |
developer | 05f3b2b | 2024-08-19 19:17:34 +0800 | [diff] [blame] | 5 | CERT |
developer | 66e89bc | 2024-04-23 14:50:01 +0800 | [diff] [blame] | 6 | |
| 7 | Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com> |
developer | 66e89bc | 2024-04-23 14:50:01 +0800 | [diff] [blame] | 8 | --- |
| 9 | mt7996/mac.c | 10 ++++++++++ |
| 10 | 1 file changed, 10 insertions(+) |
| 11 | |
| 12 | diff --git a/mt7996/mac.c b/mt7996/mac.c |
developer | d0c8945 | 2024-10-11 16:53:27 +0800 | [diff] [blame^] | 13 | index 484f91aa..f78591ff 100644 |
developer | 66e89bc | 2024-04-23 14:50:01 +0800 | [diff] [blame] | 14 | --- a/mt7996/mac.c |
| 15 | +++ b/mt7996/mac.c |
developer | d0c8945 | 2024-10-11 16:53:27 +0800 | [diff] [blame^] | 16 | @@ -759,6 +759,8 @@ static void |
developer | 66e89bc | 2024-04-23 14:50:01 +0800 | [diff] [blame] | 17 | mt7996_mac_write_txwi_80211(struct mt7996_dev *dev, __le32 *txwi, |
| 18 | struct sk_buff *skb, struct ieee80211_key_conf *key) |
| 19 | { |
| 20 | + struct mt76_phy *mphy = |
| 21 | + mt76_dev_phy(&dev->mt76, le32_get_bits(txwi[1], MT_TXD1_TGID)); |
| 22 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; |
| 23 | struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)skb->data; |
| 24 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); |
developer | d0c8945 | 2024-10-11 16:53:27 +0800 | [diff] [blame^] | 25 | @@ -768,6 +770,14 @@ mt7996_mac_write_txwi_80211(struct mt7996_dev *dev, __le32 *txwi, |
developer | 66e89bc | 2024-04-23 14:50:01 +0800 | [diff] [blame] | 26 | u8 fc_type, fc_stype; |
| 27 | u32 val; |
| 28 | |
| 29 | + if (ieee80211_is_cert_mode(mphy->hw) && ieee80211_is_deauth(fc)) { |
| 30 | + /* In WPA3 cert TC-4.8.1, the deauth must be transmitted without |
| 31 | + * considering PSM bit |
| 32 | + */ |
| 33 | + txwi[0] &= ~cpu_to_le32(MT_TXD0_Q_IDX); |
| 34 | + txwi[0] |= cpu_to_le32(FIELD_PREP(MT_TXD0_Q_IDX, MT_LMAC_ALTX0)); |
| 35 | + } |
| 36 | + |
| 37 | if (ieee80211_is_action(fc) && |
| 38 | mgmt->u.action.category == WLAN_CATEGORY_BACK && |
| 39 | mgmt->u.action.u.addba_req.action_code == WLAN_ACTION_ADDBA_REQ) |
| 40 | -- |
developer | d0c8945 | 2024-10-11 16:53:27 +0800 | [diff] [blame^] | 41 | 2.45.2 |
developer | 66e89bc | 2024-04-23 14:50:01 +0800 | [diff] [blame] | 42 | |