aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index d1962650b254..cf8d72196c65 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -698,10 +698,11 @@ void ieee80211_dynamic_ps_timer(unsigned long data)
698 698
699/* MLME */ 699/* MLME */
700static void ieee80211_sta_wmm_params(struct ieee80211_local *local, 700static void ieee80211_sta_wmm_params(struct ieee80211_local *local,
701 struct ieee80211_if_managed *ifmgd, 701 struct ieee80211_sub_if_data *sdata,
702 u8 *wmm_param, size_t wmm_param_len) 702 u8 *wmm_param, size_t wmm_param_len)
703{ 703{
704 struct ieee80211_tx_queue_params params; 704 struct ieee80211_tx_queue_params params;
705 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
705 size_t left; 706 size_t left;
706 int count; 707 int count;
707 u8 *pos, uapsd_queues = 0; 708 u8 *pos, uapsd_queues = 0;
@@ -790,8 +791,8 @@ static void ieee80211_sta_wmm_params(struct ieee80211_local *local,
790 } 791 }
791 792
792 /* enable WMM or activate new settings */ 793 /* enable WMM or activate new settings */
793 local->hw.conf.flags |= IEEE80211_CONF_QOS; 794 sdata->vif.bss_conf.qos = true;
794 drv_config(local, IEEE80211_CONF_CHANGE_QOS); 795 ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_QOS);
795} 796}
796 797
797static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata, 798static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata,
@@ -1325,7 +1326,7 @@ static bool ieee80211_assoc_success(struct ieee80211_work *wk,
1325 } 1326 }
1326 1327
1327 if (elems.wmm_param) 1328 if (elems.wmm_param)
1328 ieee80211_sta_wmm_params(local, ifmgd, elems.wmm_param, 1329 ieee80211_sta_wmm_params(local, sdata, elems.wmm_param,
1329 elems.wmm_param_len); 1330 elems.wmm_param_len);
1330 else 1331 else
1331 ieee80211_set_wmm_default(sdata); 1332 ieee80211_set_wmm_default(sdata);
@@ -1597,7 +1598,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
1597 ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems, 1598 ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems,
1598 true); 1599 true);
1599 1600
1600 ieee80211_sta_wmm_params(local, ifmgd, elems.wmm_param, 1601 ieee80211_sta_wmm_params(local, sdata, elems.wmm_param,
1601 elems.wmm_param_len); 1602 elems.wmm_param_len);
1602 } 1603 }
1603 1604
@@ -2030,6 +2031,8 @@ int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata,
2030 auth_alg = WLAN_AUTH_OPEN; 2031 auth_alg = WLAN_AUTH_OPEN;
2031 break; 2032 break;
2032 case NL80211_AUTHTYPE_SHARED_KEY: 2033 case NL80211_AUTHTYPE_SHARED_KEY:
2034 if (IS_ERR(sdata->local->wep_tx_tfm))
2035 return -EOPNOTSUPP;
2033 auth_alg = WLAN_AUTH_SHARED_KEY; 2036 auth_alg = WLAN_AUTH_SHARED_KEY;
2034 break; 2037 break;
2035 case NL80211_AUTHTYPE_FT: 2038 case NL80211_AUTHTYPE_FT: