wifi: iwlwifi: properly check if link is active
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Mon, 5 Feb 2024 19:21:05 +0000 (21:21 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 8 Feb 2024 14:00:47 +0000 (15:00 +0100)
Before sending SESSION PROTECTION cmd the driver verifies that the
link for which the cmd is going to be sent is active.
The existing code is checking it only for MLD vifs,
but also the deflink (in non-MLD vifs) needs to be active in order
the have a session protection for it.
Fix this by checking if the link is active also for non-MLD vifs

Fixes: 135065837310 ("wifi: iwlwifi: support link_id in SESSION_PROTECTION cmd")
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://msgid.link/20240205211151.c61820f14ca6.Ibbe0f848f3e71f64313d21642650b6e4bfbe4b39@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c

index b7461bc325277f36eb4bde643c31f26fba60a6e0..2956127fd11b3c06611aab3b555c8f6065353380 100644 (file)
@@ -706,8 +706,7 @@ static int iwl_mvm_get_session_prot_id(struct iwl_mvm *mvm,
                 "Invalid link ID for session protection: %u\n", link_id))
                return -EINVAL;
 
-       if (WARN(ieee80211_vif_is_mld(vif) &&
-                !(vif->active_links & BIT(link_id)),
+       if (WARN(!mvmvif->link[link_id]->active,
                 "Session Protection on an inactive link: %u\n", link_id))
                return -EINVAL;