Commit 86184b93 authored by Jes Sorensen's avatar Jes Sorensen Committed by Greg Kroah-Hartman

staging: rtl8723au: rtw_restruct_wmm_ie23a(): Use cfg80211_find_vendor_ie()

Rewrite rtw_restruct_wmm_ie23a() using cfg80211_find_vendor_ie()
Signed-off-by: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2dcf6b4c
...@@ -1909,33 +1909,25 @@ int rtw_set_key23a(struct rtw_adapter *adapter, ...@@ -1909,33 +1909,25 @@ int rtw_set_key23a(struct rtw_adapter *adapter,
/* adjust IEs for rtw_joinbss_cmd23a in WMM */ /* adjust IEs for rtw_joinbss_cmd23a in WMM */
int rtw_restruct_wmm_ie23a(struct rtw_adapter *adapter, u8 *in_ie, int rtw_restruct_wmm_ie23a(struct rtw_adapter *adapter, u8 *in_ie,
u8 *out_ie, uint in_len, uint initial_out_len) u8 *out_ie, uint in_len, uint initial_out_len)
{ {
unsigned int ielength = 0; int ielength;
unsigned int i, j; const u8 *p;
i = 0; /* after the fixed IE */ ielength = initial_out_len;
while (i < in_len) {
ielength = initial_out_len;
/* WMM element ID and OUI */ p = cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
if (in_ie[i] == 0xDD && in_ie[i + 2] == 0x00 && WLAN_OUI_TYPE_MICROSOFT_WMM,
in_ie[i + 3] == 0x50 && in_ie[i + 4] == 0xF2 && in_ie, in_len);
in_ie[i + 5] == 0x02 && i+5 < in_len) {
/* Append WMM IE to the last index of out_ie */ if (p && p[1]) {
for (j = i; j < i + 9; j++) { memcpy(out_ie + initial_out_len, p, 9);
out_ie[ielength] = in_ie[j];
ielength++;
}
out_ie[initial_out_len + 1] = 0x07;
out_ie[initial_out_len + 6] = 0x00;
out_ie[initial_out_len + 8] = 0x00;
break; out_ie[initial_out_len + 1] = 7;
} out_ie[initial_out_len + 6] = 0;
out_ie[initial_out_len + 8] = 0;
i += (in_ie[i + 1] + 2); /* to the next IE element */ ielength += 9;
} }
return ielength; return ielength;
......
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