wifi: mac80211: mlme: Fix double unlock on assoc success handling
authorRafael Mendonca <rafaelmendsr@gmail.com>
Sun, 25 Sep 2022 14:34:19 +0000 (11:34 -0300)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 27 Sep 2022 08:34:45 +0000 (10:34 +0200)
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>
net/mac80211/mlme.c

index c0fbffd9b153241db76e47e7ea4895cf445086ea..fc764984d687f86e93baeec1ec4487b6e6e536f6 100644 (file)
@@ -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;