wifi: mac80211: check AP using NPCA has NPCA capability

If an AP advertises NPCA, it should also advertise NPCA
capability. Validate this.

Link: https://patch.msgid.link/20260428112708.5c354a838ba5.I8e957767cdbc1b224a22dde0a9c343c3a5851783@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2026-04-28 11:25:42 +02:00
parent 0a621df46d
commit d2ffdadd4a

View File

@ -397,8 +397,19 @@ ieee80211_determine_ap_chan(struct ieee80211_sub_if_data *sdata,
const struct ieee80211_sta_uhr_cap *uhr_cap;
const struct ieee80211_uhr_npca_info *npca;
/* frames other than beacons carry UHR capability too */
if (!elems->uhr_cap)
return IEEE80211_CONN_MODE_EHT;
npca = ieee80211_uhr_npca_info(uhr_oper);
if (npca && !(elems->uhr_cap->mac.mac_cap[0] &
IEEE80211_UHR_MAC_CAP0_NPCA_SUPP)) {
sdata_info(sdata,
"AP without UHR NPCA capability uses it, disabling UHR\n");
return IEEE80211_CONN_MODE_EHT;
}
/* DBE is not considered yet, so this works */
if (!cfg80211_chandef_npca_valid(sdata->local->hw.wiphy,
&npca_chandef, npca) ||