wifi: mt76: mt7996: set IEEE80211_KEY_FLAG_GENERATE_MMIE for other ciphers
authorMichael-CY Lee <michael-cy.lee@mediatek.com>
Fri, 16 Aug 2024 09:46:35 +0000 (17:46 +0800)
committerFelix Fietkau <nbd@nbd.name>
Fri, 6 Sep 2024 09:14:31 +0000 (11:14 +0200)
When beacon protection is enabled, FW checks MMIE tag & length in the
beacon for every cipher mode. To pass the check, driver needs to set the
key flag IEEE80211_KEY_GENERATE_MMIE to let mac80211 generate and
initialize MMIE.

Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20240816094635.2391-11-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/main.c

index 1ab2fb2922662ff0bcb61ae349a42297d53177f5..d43bd5c2432e72f97a3943d3ae785bfa8179648c 100644 (file)
@@ -364,14 +364,14 @@ static int mt7996_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
        case WLAN_CIPHER_SUITE_SMS4:
                break;
        case WLAN_CIPHER_SUITE_AES_CMAC:
-               wcid_keyidx = &wcid->hw_key_idx2;
-               key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIE;
-               fallthrough;
        case WLAN_CIPHER_SUITE_BIP_CMAC_256:
        case WLAN_CIPHER_SUITE_BIP_GMAC_128:
        case WLAN_CIPHER_SUITE_BIP_GMAC_256:
-               if (key->keyidx == 6 || key->keyidx == 7)
+               if (key->keyidx == 6 || key->keyidx == 7) {
+                       wcid_keyidx = &wcid->hw_key_idx2;
+                       key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIE;
                        break;
+               }
                fallthrough;
        case WLAN_CIPHER_SUITE_WEP40:
        case WLAN_CIPHER_SUITE_WEP104: