diff options
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index a7b92f5f7161..efa41fc66c1f 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -2817,6 +2817,7 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, | |||
2817 | struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; | 2817 | struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; |
2818 | u16 capab_info, status_code, aid; | 2818 | u16 capab_info, status_code, aid; |
2819 | struct ieee802_11_elems elems; | 2819 | struct ieee802_11_elems elems; |
2820 | int ac, uapsd_queues = -1; | ||
2820 | u8 *pos; | 2821 | u8 *pos; |
2821 | bool reassoc; | 2822 | bool reassoc; |
2822 | struct cfg80211_bss *bss; | 2823 | struct cfg80211_bss *bss; |
@@ -2886,9 +2887,15 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, | |||
2886 | * is set can cause the interface to go idle | 2887 | * is set can cause the interface to go idle |
2887 | */ | 2888 | */ |
2888 | ieee80211_destroy_assoc_data(sdata, true); | 2889 | ieee80211_destroy_assoc_data(sdata, true); |
2890 | |||
2891 | /* get uapsd queues configuration */ | ||
2892 | uapsd_queues = 0; | ||
2893 | for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) | ||
2894 | if (sdata->tx_conf[ac].uapsd) | ||
2895 | uapsd_queues |= BIT(ac); | ||
2889 | } | 2896 | } |
2890 | 2897 | ||
2891 | cfg80211_rx_assoc_resp(sdata->dev, bss, (u8 *)mgmt, len); | 2898 | cfg80211_rx_assoc_resp(sdata->dev, bss, (u8 *)mgmt, len, uapsd_queues); |
2892 | } | 2899 | } |
2893 | 2900 | ||
2894 | static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, | 2901 | static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, |