提交 68f95b09 编写于 作者: A Avinash Patil 提交者: John W. Linville

mwifiex: fix ext_capab IE structure definition

EXT_CAPAB_IE format involves IEEE header followed by bytestream of
capabilities. Current structure has incorrect member u8 for data;
fix it by defining it as u8[0].
Signed-off-by: NAvinash Patil <patila@marvell.com>
Signed-off-by: NBing Zhao <bzhao@marvell.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 027d3307
...@@ -292,6 +292,7 @@ mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv, ...@@ -292,6 +292,7 @@ mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv,
struct mwifiex_ie_types_extcap *ext_cap; struct mwifiex_ie_types_extcap *ext_cap;
int ret_len = 0; int ret_len = 0;
struct ieee80211_supported_band *sband; struct ieee80211_supported_band *sband;
struct ieee_types_header *hdr;
u8 radio_type; u8 radio_type;
if (!buffer || !*buffer) if (!buffer || !*buffer)
...@@ -388,17 +389,18 @@ mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv, ...@@ -388,17 +389,18 @@ mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv,
} }
if (bss_desc->bcn_ext_cap) { if (bss_desc->bcn_ext_cap) {
hdr = (void *)bss_desc->bcn_ext_cap;
ext_cap = (struct mwifiex_ie_types_extcap *) *buffer; ext_cap = (struct mwifiex_ie_types_extcap *) *buffer;
memset(ext_cap, 0, sizeof(struct mwifiex_ie_types_extcap)); memset(ext_cap, 0, sizeof(struct mwifiex_ie_types_extcap));
ext_cap->header.type = cpu_to_le16(WLAN_EID_EXT_CAPABILITY); ext_cap->header.type = cpu_to_le16(WLAN_EID_EXT_CAPABILITY);
ext_cap->header.len = cpu_to_le16(sizeof(ext_cap->ext_cap)); ext_cap->header.len = cpu_to_le16(hdr->len);
memcpy((u8 *)ext_cap + sizeof(struct mwifiex_ie_types_header), memcpy((u8 *)ext_cap->ext_capab,
bss_desc->bcn_ext_cap + sizeof(struct ieee_types_header), bss_desc->bcn_ext_cap + sizeof(struct ieee_types_header),
le16_to_cpu(ext_cap->header.len)); le16_to_cpu(ext_cap->header.len));
*buffer += sizeof(struct mwifiex_ie_types_extcap); *buffer += sizeof(struct mwifiex_ie_types_extcap) + hdr->len;
ret_len += sizeof(struct mwifiex_ie_types_extcap); ret_len += sizeof(struct mwifiex_ie_types_extcap) + hdr->len;
} }
return ret_len; return ret_len;
......
...@@ -1330,7 +1330,7 @@ struct mwifiex_ie_types_2040bssco { ...@@ -1330,7 +1330,7 @@ struct mwifiex_ie_types_2040bssco {
struct mwifiex_ie_types_extcap { struct mwifiex_ie_types_extcap {
struct mwifiex_ie_types_header header; struct mwifiex_ie_types_header header;
u8 ext_cap; u8 ext_capab[0];
} __packed; } __packed;
struct host_cmd_ds_mac_reg_access { struct host_cmd_ds_mac_reg_access {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册