wifi: iwlwifi: mvm: Fix key flags for IGTK on AP interface
authorIlan Peer <ilan.peer@intel.com>
Wed, 11 Oct 2023 10:07:20 +0000 (13:07 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 23 Oct 2023 10:26:27 +0000 (12:26 +0200)
When an IGTK is installed for an AP interface, there is no station
associated with it. However, the MFP flag must be set for the installed
key as otherwise the FW wouldn't use it.

Fix the security key flag to set the MFP flag also when the AP is
an AP interface and the key index matches that of an IGTK.

Fixes: 5c75a208c244 ("wifi: iwlwifi: mvm: support new key API")
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20231011130030.f67005e2d4d2.I6832c6e87f3c79fff00689eb10a3a30810e1ee83@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c

index f49820647041019df6d444a61bbdacda3dacd016..ea3e9e9c6e26c3b1753d58722ffc97f3f57df9b0 100644 (file)
@@ -96,7 +96,12 @@ u32 iwl_mvm_get_sec_flags(struct iwl_mvm *mvm,
        if (!sta && vif->type == NL80211_IFTYPE_STATION)
                sta = mvmvif->ap_sta;
 
-       if (!IS_ERR_OR_NULL(sta) && sta->mfp)
+       /* Set the MFP flag also for an AP interface where the key is an IGTK
+        * key as in such a case the station would always be NULL
+        */
+       if ((!IS_ERR_OR_NULL(sta) && sta->mfp) ||
+           (vif->type == NL80211_IFTYPE_AP &&
+            (keyconf->keyidx == 4 || keyconf->keyidx == 5)))
                flags |= IWL_SEC_KEY_FLAG_MFP;
 
        return flags;