]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
wifi: mac80211: mlme: re-parse if AP mode is less than client
authorJohannes Berg <johannes.berg@intel.com>
Thu, 18 Apr 2024 08:52:22 +0000 (10:52 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 19 Apr 2024 08:02:14 +0000 (10:02 +0200)
commit2fb5dfe18e8255dbec4d0f8e81297de8e3490285
tree07a031880960bf4ccfe30a8bf3c8c06d0cd6a5fa
parent1ac6f60aab36ae3f0520cc7ace02ad32240b8a1f
wifi: mac80211: mlme: re-parse if AP mode is less than client

If the AP mode ends up being determined less than the client mode,
there may be different reasons for this, e.g. AP misconfiguration.
If this happens in a way that causes e.g. EHT to be rejected, the
elements need to be re-parsed since we'll connect as HE, but not
reparsing means that we'll still think it's OK to use multi-link,
so we can connect in a non-sensical configuration of advertising
only HE on a secondary link. This normally won't happen for the
assoc link because that reuses the mode from authentication, and
if that's not EHT, multi-link association is rejected.

Fix this inconsistency by parsing the elements again if the mode
was different from the first parsing attempt. Print the message a
bit later to avoid printing "determined AP ... to be HE" twice in
cases where ieee80211_determine_ap_chan() returned a lesser mode,
rather than the regulatory downgrades below changing it.

Fixes: 310c8387c638 ("wifi: mac80211: clean up connection process")
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240418105220.d1f25d92cfe7.Ia21eff6cdcae2f5aca13cf8e742a986af5e70f89@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mlme.c