]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: cfg80211: ensure UHR ML-PM flag is consistent
authorJohannes Berg <johannes.berg@intel.com>
Tue, 28 Apr 2026 09:06:58 +0000 (11:06 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 5 May 2026 12:49:01 +0000 (14:49 +0200)
We check that extended MLD capabilities and operations are
consistent across APs in an AP MLD, but didn't check reserved
fields since they could be defined to differ. Check bit 8 now
since it's defined by UHR to be consistent.

Link: https://patch.msgid.link/20260428110915.34158027395b.I9df13d3f2588d79294559fad64182acc9edf3f30@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/mlme.c

index 50ee462e5eac43272e92ac6b9ff7be118032e44a..2a2c173058bacada2f36a05f88742b487e8f60c8 100644 (file)
@@ -361,17 +361,18 @@ cfg80211_mlme_check_mlo_compat(const struct ieee80211_multi_link_elem *mle_a,
         * reserved when included in a unicast Probe Response frame and may
         * also change when the AP adds/removes links. The BTM MLD
         * Recommendation For Multiple APs Support subfield is reserved when
-        * transmitted by an AP. All other bits are currently reserved.
-        * See IEEE P802.11be/D7.0, Table 9-417o.
+        * transmitted by an AP.
         */
        if ((ieee80211_mle_get_ext_mld_capa_op((const u8 *)mle_a) &
             (IEEE80211_EHT_ML_EXT_MLD_CAPA_OP_PARAM_UPDATE |
              IEEE80211_EHT_ML_EXT_MLD_CAPA_NSTR_UPDATE |
-             IEEE80211_EHT_ML_EXT_MLD_CAPA_EMLSR_ENA_ON_ONE_LINK)) !=
+             IEEE80211_EHT_ML_EXT_MLD_CAPA_EMLSR_ENA_ON_ONE_LINK |
+             IEEE80211_UHR_ML_EXT_MLD_CAPA_ML_PM)) !=
            (ieee80211_mle_get_ext_mld_capa_op((const u8 *)mle_b) &
             (IEEE80211_EHT_ML_EXT_MLD_CAPA_OP_PARAM_UPDATE |
              IEEE80211_EHT_ML_EXT_MLD_CAPA_NSTR_UPDATE |
-             IEEE80211_EHT_ML_EXT_MLD_CAPA_EMLSR_ENA_ON_ONE_LINK))) {
+             IEEE80211_EHT_ML_EXT_MLD_CAPA_EMLSR_ENA_ON_ONE_LINK |
+             IEEE80211_UHR_ML_EXT_MLD_CAPA_ML_PM))) {
                NL_SET_ERR_MSG(extack,
                               "extended link MLD capabilities/ops mismatch");
                return -EINVAL;