]> www.infradead.org Git - users/jedix/linux-maple.git/commit
wifi: mac80211: fix erroneous errors for STA changes
authorJohannes Berg <johannes.berg@intel.com>
Wed, 5 Jun 2024 10:57:18 +0000 (13:57 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 12 Jun 2024 11:04:26 +0000 (13:04 +0200)
commit03ecd745dde181f537bf84374caafb121463136b
treed58e7eade5437af4b1c7cb8efc8c91cddc5e128d
parenta7bb6b5d36766e749d5d4cf5391f2ebce608968a
wifi: mac80211: fix erroneous errors for STA changes

When e.g. wpa_supplicant sets only the MLD "sta" authorized
state, the code actually applies that change, but then returns
an error to userspace anyway because there were no changes to
the link station, and no link ID was given. However, it's not
incorrect to not have a link ID when wanting to change only
the MLD peer ("sta") state, so the code shouldn't require it.

To fix this, separate the "new_link" argument out into a new
three-state enum, because if modify is called on a link STA
only, it should return an error if no link is given or if it
doesn't exist. For modify on the MLD "sta", not having a link
ID is OK, but if there is one it should be validated.

This seems to not have mattered much as wpa_supplicant just
prints a message and continues, and the authorized state was
already set before this error return. However, in the later
code powersave recalculation etc. will be skipped, so that it
may result in never allowing powersave on MLO connections.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240605135233.48e2b8af07e3.Ib9793c383fcba118c05100e024f4a11a1c3d0e85@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/cfg.c