diff mbox series

[13/13] wifi: iwlwifi: mvm: check own capabilities for EMLSR

Message ID 20240208185302.036443611696.If33caabd7cf372834287863b40b2d6d1ef1ca3f7@changeid
State New
Headers show
Series wifi: iwlwifi: updates - 2024-02-08 | expand

Commit Message

Miri Korenblit Feb. 8, 2024, 4:58 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

There may be different hardware or configurations supported,
so check for our own EMLSR capability before allowing it to
be used, in addition to checking the AP's.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c | 7 +++++++
 1 file changed, 7 insertions(+)
diff mbox series

Patch

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
index f818cf46b09c..63d6b68f6415 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
@@ -1275,6 +1275,7 @@  static bool iwl_mvm_can_enter_esr(struct iwl_mvm *mvm,
 	struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
 	int primary_link = iwl_mvm_mld_get_primary_link(mvm, vif,
 							desired_links);
+	const struct wiphy_iftype_ext_capab *ext_capa;
 	bool ret = true;
 	int link_id;
 
@@ -1284,6 +1285,12 @@  static bool iwl_mvm_can_enter_esr(struct iwl_mvm *mvm,
 	if (!(vif->cfg.eml_cap & IEEE80211_EML_CAP_EMLSR_SUPP))
 		return false;
 
+	ext_capa = cfg80211_get_iftype_ext_capa(mvm->hw->wiphy,
+						ieee80211_vif_type_p2p(vif));
+	if (!ext_capa ||
+	    !(ext_capa->eml_capabilities & IEEE80211_EML_CAP_EMLSR_SUPP))
+		return false;
+
 	for_each_set_bit(link_id, &desired_links, IEEE80211_MLD_MAX_NUM_LINKS) {
 		struct ieee80211_bss_conf *link_conf =
 			link_conf_dereference_protected(vif, link_id);