primary_link = best_link->link_id;
        new_active_links = BIT(best_link->link_id);
 
-       /* eSR is not supported/allowed, or only one usable link */
-       if (max_active_links == 1 || !iwl_mvm_esr_allowed_on_vif(mvm, vif) ||
-           n_data == 1)
+       /* eSR is not supported/blocked, or only one usable link */
+       if (max_active_links == 1 || !iwl_mvm_vif_has_esr_cap(mvm, vif) ||
+           mvmvif->esr_disable_reason || n_data == 1)
                goto set_active;
 
        for (u8 a = 0; a < n_data; a++)
 
        return ret;
 }
 
-bool iwl_mvm_esr_allowed_on_vif(struct iwl_mvm *mvm,
-                               struct ieee80211_vif *vif)
+bool iwl_mvm_vif_has_esr_cap(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
 {
-       struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
        const struct wiphy_iftype_ext_capab *ext_capa;
 
        lockdep_assert_held(&mvm->mutex);
 
        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;
-
-       return !mvmvif->esr_disable_reason;
+       return (ext_capa &&
+               (ext_capa->eml_capabilities & IEEE80211_EML_CAP_EMLSR_SUPP));
 }
 
 static bool iwl_mvm_mld_can_activate_links(struct ieee80211_hw *hw,
 
        /* If it is an eSR device, check that we can enter eSR */
        ret = iwl_mvm_is_esr_supported(mvm->fwrt.trans) &&
-             iwl_mvm_esr_allowed_on_vif(mvm, vif);
+             iwl_mvm_vif_has_esr_cap(mvm, vif);
 
 unlock:
        mutex_unlock(&mvm->mutex);
 
                        int duration, u32 activity);
 
 /* EMLSR */
-bool iwl_mvm_esr_allowed_on_vif(struct iwl_mvm *mvm,
-                               struct ieee80211_vif *vif);
+bool iwl_mvm_vif_has_esr_cap(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
 void iwl_mvm_block_esr(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
                       enum iwl_mvm_esr_state reason,
                       u8 link_to_keep);