Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68f95b09 authored by Avinash Patil's avatar Avinash Patil Committed by John W. Linville
Browse files

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: default avatarAvinash Patil <patila@marvell.com>
Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 027d3307
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -292,6 +292,7 @@ mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv,
	struct mwifiex_ie_types_extcap *ext_cap;
	int ret_len = 0;
	struct ieee80211_supported_band *sband;
	struct ieee_types_header *hdr;
	u8 radio_type;

	if (!buffer || !*buffer)
@@ -388,17 +389,18 @@ mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv,
	}

	if (bss_desc->bcn_ext_cap) {
		hdr = (void *)bss_desc->bcn_ext_cap;
		ext_cap = (struct mwifiex_ie_types_extcap *) *buffer;
		memset(ext_cap, 0, sizeof(struct mwifiex_ie_types_extcap));
		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),
		       le16_to_cpu(ext_cap->header.len));

		*buffer += sizeof(struct mwifiex_ie_types_extcap);
		ret_len += sizeof(struct mwifiex_ie_types_extcap);
		*buffer += sizeof(struct mwifiex_ie_types_extcap) + hdr->len;
		ret_len += sizeof(struct mwifiex_ie_types_extcap) + hdr->len;
	}

	return ret_len;
+1 −1
Original line number Diff line number Diff line
@@ -1330,7 +1330,7 @@ struct mwifiex_ie_types_2040bssco {

struct mwifiex_ie_types_extcap {
	struct mwifiex_ie_types_header header;
	u8 ext_cap;
	u8 ext_capab[0];
} __packed;

struct host_cmd_ds_mac_reg_access {