Commit 18209441 authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: iwlwifi: mvm: check own capabilities for EMLSR



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: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240208185302.036443611696.If33caabd7cf372834287863b40b2d6d1ef1ca3f7@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent d34637a9
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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);