aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/mlme.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 83e8b497e6db..e3f2cb086588 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2797,6 +2797,17 @@ static void ieee80211_rx_mgmt_beacon(struct net_device *dev,
2797 2797
2798 ieee802_11_parse_elems(mgmt->u.beacon.variable, len - baselen, &elems); 2798 ieee802_11_parse_elems(mgmt->u.beacon.variable, len - baselen, &elems);
2799 2799
2800 if (elems.wmm_param && (ifsta->flags & IEEE80211_STA_WMM_ENABLED)) {
2801 ieee80211_sta_wmm_params(dev, ifsta, elems.wmm_param,
2802 elems.wmm_param_len);
2803 }
2804
2805 /* Do not send changes to driver if we are scanning. This removes
2806 * requirement that driver's bss_info_changed function needs to be
2807 * atomic. */
2808 if (local->sta_sw_scanning || local->sta_hw_scanning)
2809 return;
2810
2800 if (elems.erp_info && elems.erp_info_len >= 1) 2811 if (elems.erp_info && elems.erp_info_len >= 1)
2801 changed |= ieee80211_handle_erp_ie(sdata, elems.erp_info[0]); 2812 changed |= ieee80211_handle_erp_ie(sdata, elems.erp_info[0]);
2802 else { 2813 else {
@@ -2816,11 +2827,6 @@ static void ieee80211_rx_mgmt_beacon(struct net_device *dev,
2816 &bss_info); 2827 &bss_info);
2817 } 2828 }
2818 2829
2819 if (elems.wmm_param && (ifsta->flags & IEEE80211_STA_WMM_ENABLED)) {
2820 ieee80211_sta_wmm_params(dev, ifsta, elems.wmm_param,
2821 elems.wmm_param_len);
2822 }
2823
2824 ieee80211_bss_info_change_notify(sdata, changed); 2830 ieee80211_bss_info_change_notify(sdata, changed);
2825} 2831}
2826 2832