Commit 7c3a8f2a authored by Jes Sorensen's avatar Jes Sorensen Committed by Greg Kroah-Hartman

staging: rtl8723au: OnAssocReq23a(): Use cfg80211_find_vendor_ie() to locate VMM

Signed-off-by: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 42282f41
...@@ -1327,7 +1327,6 @@ OnAssocReq23a(struct rtw_adapter *padapter, struct recv_frame *precv_frame) ...@@ -1327,7 +1327,6 @@ OnAssocReq23a(struct rtw_adapter *padapter, struct recv_frame *precv_frame)
u16 capab_info, listen_interval; u16 capab_info, listen_interval;
struct sta_info *pstat; struct sta_info *pstat;
unsigned char reassoc; unsigned char reassoc;
unsigned char WMM_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01};
int i, wpa_ie_len, left; int i, wpa_ie_len, left;
unsigned char supportRate[16]; unsigned char supportRate[16];
int supportRateNum; int supportRateNum;
...@@ -1577,47 +1576,46 @@ OnAssocReq23a(struct rtw_adapter *padapter, struct recv_frame *precv_frame) ...@@ -1577,47 +1576,46 @@ OnAssocReq23a(struct rtw_adapter *padapter, struct recv_frame *precv_frame)
for (;;) { for (;;) {
left = end - p; left = end - p;
p = cfg80211_find_ie(WLAN_EID_VENDOR_SPECIFIC, p, left); p = cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
WLAN_OUI_TYPE_MICROSOFT_WMM,
p, left);
if (p) { if (p) {
if (!memcmp(p + 2, WMM_IE, 6)) { pstat->flags |= WLAN_STA_WME;
pstat->flags |= WLAN_STA_WME;
pstat->qos_option = 1; pstat->qos_option = 1;
pstat->qos_info = *(p + 8); pstat->qos_info = *(p + 8);
pstat->max_sp_len = pstat->max_sp_len =
(pstat->qos_info >> 5) & 0x3; (pstat->qos_info >> 5) & 0x3;
if ((pstat->qos_info & 0xf) != 0xf) if ((pstat->qos_info & 0xf) != 0xf)
pstat->has_legacy_ac = true; pstat->has_legacy_ac = true;
else else
pstat->has_legacy_ac = false; pstat->has_legacy_ac = false;
if (pstat->qos_info & 0xf) {
if (pstat->qos_info & BIT(0))
pstat->uapsd_vo = BIT(0)|BIT(1);
else
pstat->uapsd_vo = 0;
if (pstat->qos_info & BIT(1)) if (pstat->qos_info & 0xf) {
pstat->uapsd_vi = BIT(0)|BIT(1); if (pstat->qos_info & BIT(0))
else pstat->uapsd_vo = BIT(0)|BIT(1);
pstat->uapsd_vi = 0; else
pstat->uapsd_vo = 0;
if (pstat->qos_info & BIT(2)) if (pstat->qos_info & BIT(1))
pstat->uapsd_bk = BIT(0)|BIT(1); pstat->uapsd_vi = BIT(0)|BIT(1);
else else
pstat->uapsd_bk = 0; pstat->uapsd_vi = 0;
if (pstat->qos_info & BIT(3)) if (pstat->qos_info & BIT(2))
pstat->uapsd_be = BIT(0)|BIT(1); pstat->uapsd_bk = BIT(0)|BIT(1);
else else
pstat->uapsd_be = 0; pstat->uapsd_bk = 0;
} if (pstat->qos_info & BIT(3))
pstat->uapsd_be = BIT(0)|BIT(1);
else
pstat->uapsd_be = 0;
break;
} }
break;
} else { } else {
break; break;
} }
......
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