diff options
author | Rafael Mendonca <rafaelmendsr@gmail.com> | 2022-09-25 11:34:19 -0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-09-27 10:34:45 +0200 |
commit | 6546646a7fb0d7fe1caef947889497c16aaecc8c (patch) | |
tree | 35ea08ffdbee0f2e83dda1225864da757006c9ee /net | |
parent | 883b8dc1a8766464d5bde4d97e1d7c795d990d31 (diff) | |
download | linux-stable-6546646a7fb0d7fe1caef947889497c16aaecc8c.tar.gz linux-stable-6546646a7fb0d7fe1caef947889497c16aaecc8c.tar.bz2 linux-stable-6546646a7fb0d7fe1caef947889497c16aaecc8c.zip |
wifi: mac80211: mlme: Fix double unlock on assoc success handling
Commit 6911458dc428 ("wifi: mac80211: mlme: refactor assoc success
handling") moved the per-link setup out of ieee80211_assoc_success() into a
new function ieee80211_assoc_config_link() but missed to remove the unlock
of 'sta_mtx' in case of HE capability/operation missing on HE AP, which
leads to a double unlock:
ieee80211_assoc_success() {
...
ieee80211_assoc_config_link() {
...
if (!(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_HE) &&
(!elems->he_cap || !elems->he_operation)) {
mutex_unlock(&sdata->local->sta_mtx);
...
}
...
}
...
mutex_unlock(&sdata->local->sta_mtx);
...
}
Fixes: 6911458dc428 ("wifi: mac80211: mlme: refactor assoc success handling")
Signed-off-by: Rafael Mendonca <rafaelmendsr@gmail.com>
Link: https://lore.kernel.org/r/20220925143420.784975-1-rafaelmendsr@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/mlme.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index c0fbffd9b153..fc764984d687 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -4040,7 +4040,6 @@ static bool ieee80211_assoc_config_link(struct ieee80211_link_data *link, if (!(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_HE) && (!elems->he_cap || !elems->he_operation)) { - mutex_unlock(&sdata->local->sta_mtx); sdata_info(sdata, "HE AP is missing HE capability/operation\n"); ret = false; |