summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelvaraj, Sridhar <sselvara@codeaurora.org>2016-06-23 20:44:09 +0530
committerqcabuildsw <qcabuildsw@localhost>2016-09-02 17:22:35 -0700
commit94ece202c50bad62c2a01cb981d70179cbcf483a (patch)
tree58662c64dd21ffa292fdf0e3c72f70b4b1a4fe3a
parent4d6c29599dd28ed3540f1ec3e83cfdbb261753af (diff)
qcacld-3.0: Fix Ext Cap IE mismatch in Probe/Assoc Response frames
qcacld-2.0 to qcacld-3.0 propagation In SAP mode, while sending Probe response template to HAL from driver, ext cap IE should be merged only if it is present or received from hostapd. In function limSendProbeRspTemplateToHal, extcap_present bool is wrongly initialized to true which leads to updation of the extended Cap IE with junk values in Probe response even for the cases where driver is not supposed to update it, i.e. cases where the ext cap IE is not present or not received from hostapd Git-commit: a7256f3483c0a26c8715f2ae6166289de6da6b1e Change-Id: If82fbba4c20b5e96dbe1b11c97ab557ded488f3e CRs-Fixed: 995545
-rw-r--r--core/mac/src/pe/lim/lim_send_management_frames.c5
-rw-r--r--core/mac/src/pe/sch/sch_api.c5
2 files changed, 6 insertions, 4 deletions
diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c
index 5b83e39742a9..dfde5ffce65e 100644
--- a/core/mac/src/pe/lim/lim_send_management_frames.c
+++ b/core/mac/src/pe/lim/lim_send_management_frames.c
@@ -532,7 +532,7 @@ lim_send_probe_rsp_mgmt_frame(tpAniSirGlobal mac_ctx,
uint8_t sme_sessionid = 0;
bool is_vht_enabled = false;
tDot11fIEExtCap extracted_ext_cap;
- bool extracted_ext_cap_flag = true;
+ bool extracted_ext_cap_flag = false;
/* We don't answer requests in this case*/
if (ANI_DRIVER_TYPE(mac_ctx) == eDRIVER_TYPE_MFG)
@@ -734,9 +734,10 @@ lim_send_probe_rsp_mgmt_frame(tpAniSirGlobal mac_ctx,
add_ie, &addn_ie_len,
&extracted_ext_cap);
if (eSIR_SUCCESS != sir_status) {
- extracted_ext_cap_flag = false;
lim_log(mac_ctx, LOG1,
FL("Unable to strip off ExtCap IE"));
+ } else {
+ extracted_ext_cap_flag = true;
}
bytes = bytes + addn_ie_len;
diff --git a/core/mac/src/pe/sch/sch_api.c b/core/mac/src/pe/sch/sch_api.c
index a61d0fa7e888..2eb27f8e73ec 100644
--- a/core/mac/src/pe/sch/sch_api.c
+++ b/core/mac/src/pe/sch/sch_api.c
@@ -387,7 +387,7 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal pMac,
uint32_t addnIELenWoP2pIe = 0;
uint32_t retStatus;
tDot11fIEExtCap extracted_extcap;
- bool extcap_present = true;
+ bool extcap_present = false;
tDot11fProbeResponse *prb_rsp_frm;
tSirRetStatus status;
uint16_t addn_ielen = 0;
@@ -458,8 +458,9 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal pMac,
status = lim_strip_extcap_update_struct(pMac, addIE,
&addn_ielen, &extracted_extcap);
if (eSIR_SUCCESS != status) {
- extcap_present = false;
sch_log(pMac, LOG1, FL("extcap not extracted"));
+ } else {
+ extcap_present = true;
}
}