Commit 3614d05b authored by David S. Miller's avatar David S. Miller

Merge tag 'mac80211-for-net-2020-02-24' of...

Merge tag 'mac80211-for-net-2020-02-24' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211

Johannes Berg

====================
A few fixes:
 * remove a double mutex-unlock
 * fix a leak in an error path
 * NULL pointer check
 * include if_vlan.h where needed
 * avoid RCU list traversal when not under RCU
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 823d81b0 253216ff
...@@ -2959,7 +2959,7 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata, ...@@ -2959,7 +2959,7 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,
(auth_transaction == 2 && (auth_transaction == 2 &&
ifmgd->auth_data->expected_transaction == 2)) { ifmgd->auth_data->expected_transaction == 2)) {
if (!ieee80211_mark_sta_auth(sdata, bssid)) if (!ieee80211_mark_sta_auth(sdata, bssid))
goto out_err; return; /* ignore frame -- wait for timeout */
} else if (ifmgd->auth_data->algorithm == WLAN_AUTH_SAE && } else if (ifmgd->auth_data->algorithm == WLAN_AUTH_SAE &&
auth_transaction == 2) { auth_transaction == 2) {
sdata_info(sdata, "SAE peer confirmed\n"); sdata_info(sdata, "SAE peer confirmed\n");
...@@ -2967,10 +2967,6 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata, ...@@ -2967,10 +2967,6 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,
} }
cfg80211_rx_mlme_mgmt(sdata->dev, (u8 *)mgmt, len); cfg80211_rx_mlme_mgmt(sdata->dev, (u8 *)mgmt, len);
return;
out_err:
mutex_unlock(&sdata->local->sta_mtx);
/* ignore frame -- wait for timeout */
} }
#define case_WLAN(type) \ #define case_WLAN(type) \
......
...@@ -4114,7 +4114,7 @@ void __ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata) ...@@ -4114,7 +4114,7 @@ void __ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata)
lockdep_assert_held(&local->sta_mtx); lockdep_assert_held(&local->sta_mtx);
list_for_each_entry_rcu(sta, &local->sta_list, list) { list_for_each_entry(sta, &local->sta_list, list) {
if (sdata != sta->sdata && if (sdata != sta->sdata &&
(!sta->sdata->bss || sta->sdata->bss != sdata->bss)) (!sta->sdata->bss || sta->sdata->bss != sdata->bss))
continue; continue;
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/netlink.h> #include <linux/netlink.h>
#include <linux/nospec.h> #include <linux/nospec.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <linux/if_vlan.h>
#include <net/net_namespace.h> #include <net/net_namespace.h>
#include <net/genetlink.h> #include <net/genetlink.h>
#include <net/cfg80211.h> #include <net/cfg80211.h>
...@@ -4800,8 +4801,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info) ...@@ -4800,8 +4801,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info)
err = nl80211_parse_he_obss_pd( err = nl80211_parse_he_obss_pd(
info->attrs[NL80211_ATTR_HE_OBSS_PD], info->attrs[NL80211_ATTR_HE_OBSS_PD],
&params.he_obss_pd); &params.he_obss_pd);
if (err) goto out;
return err;
} }
nl80211_calculate_ap_params(&params); nl80211_calculate_ap_params(&params);
...@@ -4823,6 +4823,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info) ...@@ -4823,6 +4823,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info)
} }
wdev_unlock(wdev); wdev_unlock(wdev);
out:
kfree(params.acl); kfree(params.acl);
return err; return err;
......
...@@ -2276,7 +2276,7 @@ static void handle_channel_custom(struct wiphy *wiphy, ...@@ -2276,7 +2276,7 @@ static void handle_channel_custom(struct wiphy *wiphy,
break; break;
} }
if (IS_ERR(reg_rule)) { if (IS_ERR_OR_NULL(reg_rule)) {
pr_debug("Disabling freq %d MHz as custom regd has no rule that fits it\n", pr_debug("Disabling freq %d MHz as custom regd has no rule that fits it\n",
chan->center_freq); chan->center_freq);
if (wiphy->regulatory_flags & REGULATORY_WIPHY_SELF_MANAGED) { if (wiphy->regulatory_flags & REGULATORY_WIPHY_SELF_MANAGED) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment