]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:16:41 +0000 (18:16 -0400)
[ Upstream commit 556c7cd721b5262579ba1710c3b4e7ffdb5573ac ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c

index 98c64ae315e68e68a4c79f27503087f6996b442d..da00ef6e4fbcf6e6e4abfca32de806d1e65527d9 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;