qcacld-3.0: allocate static variables dynamically
We have some local variables allocated statically in LIM.
To reduce data segment size, allocate these variables dynamically
and then free.
Change-Id: I9ab6a180a89342ebace6f92336bfe30a498f5848
CRs-Fixed: 2307644
diff --git a/core/mac/src/pe/lim/lim_send_frames_host_roam.c b/core/mac/src/pe/lim/lim_send_frames_host_roam.c
index 0bd80e3..3a1c962 100644
--- a/core/mac/src/pe/lim/lim_send_frames_host_roam.c
+++ b/core/mac/src/pe/lim/lim_send_frames_host_roam.c
@@ -68,7 +68,7 @@
tLimMlmReassocReq *mlm_reassoc_req,
tpPESession pe_session)
{
- static tDot11fReAssocRequest frm;
+ tDot11fReAssocRequest *frm;
uint16_t caps;
uint8_t *frame;
uint32_t bytes, payload, status;
@@ -96,11 +96,17 @@
if (NULL == pe_session->pLimReAssocReq)
return;
+ frm = qdf_mem_malloc(sizeof(*frm));
+ if (!frm) {
+ pe_err("mem alloc failed");
+ goto err;
+ }
+
add_ie_len = pe_session->pLimReAssocReq->addIEAssoc.length;
add_ie = pe_session->pLimReAssocReq->addIEAssoc.addIEdata;
pe_debug("called in state: %d", pe_session->limMlmState);
- qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
+ qdf_mem_set((uint8_t *) frm, sizeof(*frm), 0);
caps = mlm_reassoc_req->capabilityInfo;
#if defined(FEATURE_WLAN_WAPI)
@@ -115,21 +121,21 @@
if (pe_session->encryptType == eSIR_ED_WPI)
((tSirMacCapabilityInfo *) &caps)->privacy = 0;
#endif
- swap_bit_field16(caps, (uint16_t *) &frm.Capabilities);
+ swap_bit_field16(caps, (uint16_t *) &frm->Capabilities);
- frm.ListenInterval.interval = mlm_reassoc_req->listenInterval;
+ frm->ListenInterval.interval = mlm_reassoc_req->listenInterval;
/*
* Get the old bssid of the older AP.
* The previous ap bssid is stored in the FT Session
* while creating the PE FT Session for reassociation.
*/
- qdf_mem_copy((uint8_t *)frm.CurrentAPAddress.mac,
+ qdf_mem_copy((uint8_t *)frm->CurrentAPAddress.mac,
pe_session->prev_ap_bssid, sizeof(tSirMacAddr));
- populate_dot11f_ssid2(mac_ctx, &frm.SSID);
+ populate_dot11f_ssid2(mac_ctx, &frm->SSID);
populate_dot11f_supp_rates(mac_ctx, POPULATE_DOT11F_RATES_OPERATIONAL,
- &frm.SuppRates, pe_session);
+ &frm->SuppRates, pe_session);
qos_enabled = (pe_session->limQosEnabled) &&
SIR_MAC_GET_QOS(pe_session->limReassocBssCaps);
@@ -144,31 +150,31 @@
pe_session->pLimReAssocReq->spectrumMgtIndicator == true) {
power_caps_populated = true;
- populate_dot11f_power_caps(mac_ctx, &frm.PowerCaps,
+ populate_dot11f_power_caps(mac_ctx, &frm->PowerCaps,
LIM_REASSOC, pe_session);
- populate_dot11f_supp_channels(mac_ctx, &frm.SuppChannels,
+ populate_dot11f_supp_channels(mac_ctx, &frm->SuppChannels,
LIM_REASSOC, pe_session);
}
if (mac_ctx->rrm.rrmPEContext.rrmEnable &&
SIR_MAC_GET_RRM(pe_session->limCurrentBssCaps)) {
if (power_caps_populated == false) {
power_caps_populated = true;
- populate_dot11f_power_caps(mac_ctx, &frm.PowerCaps,
+ populate_dot11f_power_caps(mac_ctx, &frm->PowerCaps,
LIM_REASSOC, pe_session);
}
}
if (qos_enabled)
populate_dot11f_qos_caps_station(mac_ctx, pe_session,
- &frm.QOSCapsStation);
+ &frm->QOSCapsStation);
populate_dot11f_ext_supp_rates(mac_ctx,
- POPULATE_DOT11F_RATES_OPERATIONAL, &frm.ExtSuppRates,
+ POPULATE_DOT11F_RATES_OPERATIONAL, &frm->ExtSuppRates,
pe_session);
if (mac_ctx->rrm.rrmPEContext.rrmEnable &&
SIR_MAC_GET_RRM(pe_session->limCurrentBssCaps))
- populate_dot11f_rrm_ie(mac_ctx, &frm.RRMEnabledCap, pe_session);
+ populate_dot11f_rrm_ie(mac_ctx, &frm->RRMEnabledCap, pe_session);
/*
* Ideally this should be enabled for 11r also. But 11r does
@@ -205,16 +211,16 @@
if (NULL == wps_ie) {
populate_dot11f_rsn_opaque(mac_ctx,
&(pe_session->pLimReAssocReq->rsnIE),
- &frm.RSNOpaque);
+ &frm->RSNOpaque);
populate_dot11f_wpa_opaque(mac_ctx,
&(pe_session->pLimReAssocReq->rsnIE),
- &frm.WPAOpaque);
+ &frm->WPAOpaque);
}
#ifdef FEATURE_WLAN_ESE
if (pe_session->pLimReAssocReq->cckmIE.length) {
populate_dot11f_ese_cckm_opaque(mac_ctx,
&(pe_session->pLimReAssocReq->cckmIE),
- &frm.ESECckmOpaque);
+ &frm->ESECckmOpaque);
}
#endif
}
@@ -227,12 +233,12 @@
*/
if (pe_session->is_ese_version_ie_present &&
mac_ctx->roam.configParam.isEseIniFeatureEnabled)
- populate_dot11f_ese_version(&frm.ESEVersion);
+ populate_dot11f_ese_version(&frm->ESEVersion);
/* For ESE Associations fill the ESE IEs */
if (pe_session->isESEconnection &&
pe_session->pLimReAssocReq->isESEFeatureIniEnabled) {
#ifndef FEATURE_DISABLE_RM
- populate_dot11f_ese_rad_mgmt_cap(&frm.ESERadMgmtCap);
+ populate_dot11f_ese_rad_mgmt_cap(&frm->ESERadMgmtCap);
#endif
}
#endif /* FEATURE_WLAN_ESE */
@@ -240,15 +246,15 @@
/* include WME EDCA IE as well */
if (wme_enabled) {
populate_dot11f_wmm_info_station_per_session(mac_ctx,
- pe_session, &frm.WMMInfoStation);
+ pe_session, &frm->WMMInfoStation);
if (wsm_enabled)
- populate_dot11f_wmm_caps(&frm.WMMCaps);
+ populate_dot11f_wmm_caps(&frm->WMMCaps);
#ifdef FEATURE_WLAN_ESE
if (pe_session->isESEconnection) {
uint32_t phymode;
uint8_t rate;
- populate_dot11f_re_assoc_tspec(mac_ctx, &frm,
+ populate_dot11f_re_assoc_tspec(mac_ctx, frm,
pe_session);
/*
@@ -269,7 +275,7 @@
tsrs_ie.tsid = 0;
tsrs_ie.rates[0] = rate;
populate_dot11_tsrsie(mac_ctx, &tsrs_ie,
- &frm.ESETrafStrmRateSet,
+ &frm->ESETrafStrmRateSet,
sizeof(uint8_t));
}
}
@@ -279,7 +285,7 @@
ft_sme_context = &mac_ctx->roam.roamSession[sme_sessionid].ftSmeContext;
if (pe_session->htCapability &&
mac_ctx->lim.htCapabilityPresentInBeacon) {
- populate_dot11f_ht_caps(mac_ctx, pe_session, &frm.HTCaps);
+ populate_dot11f_ht_caps(mac_ctx, pe_session, &frm->HTCaps);
}
if (pe_session->pLimReAssocReq->bssDescription.mdiePresent &&
(ft_sme_context->addMDIE == true)
@@ -287,36 +293,36 @@
&& !pe_session->isESEconnection
#endif
) {
- populate_mdie(mac_ctx, &frm.MobilityDomain,
+ populate_mdie(mac_ctx, &frm->MobilityDomain,
pe_session->pLimReAssocReq->bssDescription.mdie);
}
if (pe_session->vhtCapability &&
pe_session->vhtCapabilityPresentInBeacon) {
pe_debug("Populate VHT IEs in Re-Assoc Request");
- populate_dot11f_vht_caps(mac_ctx, pe_session, &frm.VHTCaps);
+ populate_dot11f_vht_caps(mac_ctx, pe_session, &frm->VHTCaps);
vht_enabled = true;
- populate_dot11f_ext_cap(mac_ctx, vht_enabled, &frm.ExtCap,
+ populate_dot11f_ext_cap(mac_ctx, vht_enabled, &frm->ExtCap,
pe_session);
}
if (!vht_enabled &&
pe_session->is_vendor_specific_vhtcaps) {
pe_debug("Populate Vendor VHT IEs in Re-Assoc Request");
- frm.vendor_vht_ie.present = 1;
- frm.vendor_vht_ie.sub_type =
+ frm->vendor_vht_ie.present = 1;
+ frm->vendor_vht_ie.sub_type =
pe_session->vendor_specific_vht_ie_sub_type;
- frm.vendor_vht_ie.VHTCaps.present = 1;
+ frm->vendor_vht_ie.VHTCaps.present = 1;
populate_dot11f_vht_caps(mac_ctx, pe_session,
- &frm.vendor_vht_ie.VHTCaps);
+ &frm->vendor_vht_ie.VHTCaps);
vht_enabled = true;
}
if (lim_is_session_he_capable(pe_session)) {
pe_debug("Populate HE IEs");
populate_dot11f_he_caps(mac_ctx, pe_session,
- &frm.he_cap);
+ &frm->he_cap);
}
- status = dot11f_get_packed_re_assoc_request_size(mac_ctx, &frm,
+ status = dot11f_get_packed_re_assoc_request_size(mac_ctx, frm,
&payload);
if (DOT11F_FAILED(status)) {
pe_err("Failure in size calculation (0x%08x)", status);
@@ -354,7 +360,7 @@
pe_session->selfMacAddr);
mac_hdr = (tpSirMacMgmtHdr) frame;
/* That done, pack the ReAssoc Request: */
- status = dot11f_pack_re_assoc_request(mac_ctx, &frm, frame +
+ status = dot11f_pack_re_assoc_request(mac_ctx, frm, frame +
sizeof(tSirMacMgmtHdr),
payload, &payload);
if (DOT11F_FAILED(status)) {
@@ -458,6 +464,8 @@
}
end:
+ qdf_mem_free(frm);
+err:
/* Free up buffer allocated for mlmAssocReq */
qdf_mem_free(mlm_reassoc_req);
pe_session->pLimMlmReassocReq = NULL;
@@ -540,7 +548,7 @@
tLimMlmReassocReq *pMlmReassocReq,
tpPESession psessionEntry)
{
- static tDot11fReAssocRequest frm;
+ tDot11fReAssocRequest *frm;
uint16_t caps;
uint8_t *pFrame;
uint32_t nBytes, nPayload, nStatus;
@@ -562,10 +570,16 @@
smeSessionId = psessionEntry->smeSessionId;
if (NULL == psessionEntry->pLimReAssocReq)
return;
+
+ frm = qdf_mem_malloc(sizeof(*frm));
+ if (!frm) {
+ pe_err("mem alloc failed");
+ goto err;
+ }
nAddIELen = psessionEntry->pLimReAssocReq->addIEAssoc.length;
pAddIE = psessionEntry->pLimReAssocReq->addIEAssoc.addIEdata;
- qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
+ qdf_mem_set((uint8_t *) frm, sizeof(*frm), 0);
caps = pMlmReassocReq->capabilityInfo;
#if defined(FEATURE_WLAN_WAPI)
@@ -581,16 +595,16 @@
if (psessionEntry->encryptType == eSIR_ED_WPI)
((tSirMacCapabilityInfo *) &caps)->privacy = 0;
#endif
- swap_bit_field16(caps, (uint16_t *) &frm.Capabilities);
+ swap_bit_field16(caps, (uint16_t *) &frm->Capabilities);
- frm.ListenInterval.interval = pMlmReassocReq->listenInterval;
+ frm->ListenInterval.interval = pMlmReassocReq->listenInterval;
- qdf_mem_copy((uint8_t *) frm.CurrentAPAddress.mac,
+ qdf_mem_copy((uint8_t *) frm->CurrentAPAddress.mac,
(uint8_t *) psessionEntry->bssId, 6);
- populate_dot11f_ssid2(pMac, &frm.SSID);
+ populate_dot11f_ssid2(pMac, &frm->SSID);
populate_dot11f_supp_rates(pMac, POPULATE_DOT11F_RATES_OPERATIONAL,
- &frm.SuppRates, psessionEntry);
+ &frm->SuppRates, psessionEntry);
fQosEnabled = (psessionEntry->limQosEnabled) &&
SIR_MAC_GET_QOS(psessionEntry->limReassocBssCaps);
@@ -604,30 +618,30 @@
if (psessionEntry->lim11hEnable &&
psessionEntry->pLimReAssocReq->spectrumMgtIndicator == true) {
PowerCapsPopulated = true;
- populate_dot11f_power_caps(pMac, &frm.PowerCaps, LIM_REASSOC,
+ populate_dot11f_power_caps(pMac, &frm->PowerCaps, LIM_REASSOC,
psessionEntry);
- populate_dot11f_supp_channels(pMac, &frm.SuppChannels,
+ populate_dot11f_supp_channels(pMac, &frm->SuppChannels,
LIM_REASSOC, psessionEntry);
}
if (pMac->rrm.rrmPEContext.rrmEnable &&
SIR_MAC_GET_RRM(psessionEntry->limCurrentBssCaps)) {
if (PowerCapsPopulated == false) {
PowerCapsPopulated = true;
- populate_dot11f_power_caps(pMac, &frm.PowerCaps,
+ populate_dot11f_power_caps(pMac, &frm->PowerCaps,
LIM_REASSOC, psessionEntry);
}
}
if (fQosEnabled)
populate_dot11f_qos_caps_station(pMac, psessionEntry,
- &frm.QOSCapsStation);
+ &frm->QOSCapsStation);
populate_dot11f_ext_supp_rates(pMac, POPULATE_DOT11F_RATES_OPERATIONAL,
- &frm.ExtSuppRates, psessionEntry);
+ &frm->ExtSuppRates, psessionEntry);
if (pMac->rrm.rrmPEContext.rrmEnable &&
SIR_MAC_GET_RRM(psessionEntry->limCurrentBssCaps))
- populate_dot11f_rrm_ie(pMac, &frm.RRMEnabledCap, psessionEntry);
+ populate_dot11f_rrm_ie(pMac, &frm->RRMEnabledCap, psessionEntry);
/* The join request *should* contain zero or one of the WPA and RSN */
/* IEs. The payload send along with the request is a */
/* 'tSirSmeJoinReq'; the IE portion is held inside a 'tSirRSNie': */
@@ -653,45 +667,45 @@
if (NULL == wpsIe) {
populate_dot11f_rsn_opaque(pMac,
&(psessionEntry->pLimReAssocReq->rsnIE),
- &frm.RSNOpaque);
+ &frm->RSNOpaque);
populate_dot11f_wpa_opaque(pMac,
&(psessionEntry->pLimReAssocReq->rsnIE),
- &frm.WPAOpaque);
+ &frm->WPAOpaque);
#if defined(FEATURE_WLAN_WAPI)
populate_dot11f_wapi_opaque(pMac,
&(psessionEntry->pLimReAssocReq->
- rsnIE), &frm.WAPIOpaque);
+ rsnIE), &frm->WAPIOpaque);
#endif /* defined(FEATURE_WLAN_WAPI) */
}
/* include WME EDCA IE as well */
if (fWmeEnabled) {
populate_dot11f_wmm_info_station_per_session(pMac,
- psessionEntry, &frm.WMMInfoStation);
+ psessionEntry, &frm->WMMInfoStation);
if (fWsmEnabled)
- populate_dot11f_wmm_caps(&frm.WMMCaps);
+ populate_dot11f_wmm_caps(&frm->WMMCaps);
}
if (psessionEntry->htCapability &&
pMac->lim.htCapabilityPresentInBeacon) {
- populate_dot11f_ht_caps(pMac, psessionEntry, &frm.HTCaps);
+ populate_dot11f_ht_caps(pMac, psessionEntry, &frm->HTCaps);
}
if (psessionEntry->vhtCapability &&
psessionEntry->vhtCapabilityPresentInBeacon) {
pe_warn("Populate VHT IEs in Re-Assoc Request");
- populate_dot11f_vht_caps(pMac, psessionEntry, &frm.VHTCaps);
+ populate_dot11f_vht_caps(pMac, psessionEntry, &frm->VHTCaps);
isVHTEnabled = true;
}
- populate_dot11f_ext_cap(pMac, isVHTEnabled, &frm.ExtCap, psessionEntry);
+ populate_dot11f_ext_cap(pMac, isVHTEnabled, &frm->ExtCap, psessionEntry);
if (lim_is_session_he_capable(psessionEntry)) {
pe_debug("Populate HE IEs");
populate_dot11f_he_caps(pMac, psessionEntry,
- &frm.he_cap);
+ &frm->he_cap);
}
nStatus =
- dot11f_get_packed_re_assoc_request_size(pMac, &frm, &nPayload);
+ dot11f_get_packed_re_assoc_request_size(pMac, frm, &nPayload);
if (DOT11F_FAILED(nStatus)) {
pe_err("Fail to get size:ReassocReq: (0x%08x)", nStatus);
/* We'll fall back on the worst case scenario: */
@@ -723,7 +737,7 @@
pMacHdr = (tpSirMacMgmtHdr) pFrame;
/* That done, pack the Probe Request: */
- nStatus = dot11f_pack_re_assoc_request(pMac, &frm, pFrame +
+ nStatus = dot11f_pack_re_assoc_request(pMac, frm, pFrame +
sizeof(tSirMacMgmtHdr),
nPayload, &nPayload);
if (DOT11F_FAILED(nStatus)) {
@@ -791,6 +805,8 @@
}
end:
+ qdf_mem_free(frm);
+err:
/* Free up buffer allocated for mlmAssocReq */
qdf_mem_free(pMlmReassocReq);
psessionEntry->pLimMlmReassocReq = NULL;
diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
index 7dfe196..8f93b2f 100644
--- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c
+++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
@@ -3228,15 +3228,20 @@
uint8_t *pFrame,
uint32_t nFrame, tpSirAssocReq pAssocReq)
{
- static tDot11fReAssocRequest ar;
+ tDot11fReAssocRequest *ar;
uint32_t status;
+ ar = qdf_mem_malloc(sizeof(*ar));
+ if (!ar) {
+ pe_err("mem alloc failed");
+ return QDF_STATUS_E_NOMEM;
+ }
/* Zero-init our [out] parameter, */
qdf_mem_set((uint8_t *) pAssocReq, sizeof(tSirAssocReq), 0);
/* delegate to the framesc-generated code, */
status = dot11f_unpack_re_assoc_request(pMac, pFrame, nFrame,
- &ar, false);
+ ar, false);
if (DOT11F_FAILED(status)) {
pe_err("Failed to parse a Re-association Request (0x%08x, %d bytes):",
status, nFrame);
@@ -3253,87 +3258,87 @@
pAssocReq->reassocRequest = 1;
/* Capabilities */
- pAssocReq->capabilityInfo.ess = ar.Capabilities.ess;
- pAssocReq->capabilityInfo.ibss = ar.Capabilities.ibss;
- pAssocReq->capabilityInfo.cfPollable = ar.Capabilities.cfPollable;
- pAssocReq->capabilityInfo.cfPollReq = ar.Capabilities.cfPollReq;
- pAssocReq->capabilityInfo.privacy = ar.Capabilities.privacy;
- pAssocReq->capabilityInfo.shortPreamble = ar.Capabilities.shortPreamble;
- pAssocReq->capabilityInfo.pbcc = ar.Capabilities.pbcc;
+ pAssocReq->capabilityInfo.ess = ar->Capabilities.ess;
+ pAssocReq->capabilityInfo.ibss = ar->Capabilities.ibss;
+ pAssocReq->capabilityInfo.cfPollable = ar->Capabilities.cfPollable;
+ pAssocReq->capabilityInfo.cfPollReq = ar->Capabilities.cfPollReq;
+ pAssocReq->capabilityInfo.privacy = ar->Capabilities.privacy;
+ pAssocReq->capabilityInfo.shortPreamble = ar->Capabilities.shortPreamble;
+ pAssocReq->capabilityInfo.pbcc = ar->Capabilities.pbcc;
pAssocReq->capabilityInfo.channelAgility =
- ar.Capabilities.channelAgility;
- pAssocReq->capabilityInfo.spectrumMgt = ar.Capabilities.spectrumMgt;
- pAssocReq->capabilityInfo.qos = ar.Capabilities.qos;
- pAssocReq->capabilityInfo.shortSlotTime = ar.Capabilities.shortSlotTime;
- pAssocReq->capabilityInfo.apsd = ar.Capabilities.apsd;
- pAssocReq->capabilityInfo.rrm = ar.Capabilities.rrm;
- pAssocReq->capabilityInfo.dsssOfdm = ar.Capabilities.dsssOfdm;
- pAssocReq->capabilityInfo.delayedBA = ar.Capabilities.delayedBA;
- pAssocReq->capabilityInfo.immediateBA = ar.Capabilities.immediateBA;
+ ar->Capabilities.channelAgility;
+ pAssocReq->capabilityInfo.spectrumMgt = ar->Capabilities.spectrumMgt;
+ pAssocReq->capabilityInfo.qos = ar->Capabilities.qos;
+ pAssocReq->capabilityInfo.shortSlotTime = ar->Capabilities.shortSlotTime;
+ pAssocReq->capabilityInfo.apsd = ar->Capabilities.apsd;
+ pAssocReq->capabilityInfo.rrm = ar->Capabilities.rrm;
+ pAssocReq->capabilityInfo.dsssOfdm = ar->Capabilities.dsssOfdm;
+ pAssocReq->capabilityInfo.delayedBA = ar->Capabilities.delayedBA;
+ pAssocReq->capabilityInfo.immediateBA = ar->Capabilities.immediateBA;
/* Listen Interval */
- pAssocReq->listenInterval = ar.ListenInterval.interval;
+ pAssocReq->listenInterval = ar->ListenInterval.interval;
/* SSID */
- if (ar.SSID.present) {
+ if (ar->SSID.present) {
pAssocReq->ssidPresent = 1;
- convert_ssid(pMac, &pAssocReq->ssId, &ar.SSID);
+ convert_ssid(pMac, &pAssocReq->ssId, &ar->SSID);
}
/* Supported Rates */
- if (ar.SuppRates.present) {
+ if (ar->SuppRates.present) {
pAssocReq->suppRatesPresent = 1;
convert_supp_rates(pMac, &pAssocReq->supportedRates,
- &ar.SuppRates);
+ &ar->SuppRates);
}
/* Extended Supported Rates */
- if (ar.ExtSuppRates.present) {
+ if (ar->ExtSuppRates.present) {
pAssocReq->extendedRatesPresent = 1;
convert_ext_supp_rates(pMac, &pAssocReq->extendedRates,
- &ar.ExtSuppRates);
+ &ar->ExtSuppRates);
}
/* QOS Capabilities: */
- if (ar.QOSCapsStation.present) {
+ if (ar->QOSCapsStation.present) {
pAssocReq->qosCapabilityPresent = 1;
convert_qos_caps_station(pMac, &pAssocReq->qosCapability,
- &ar.QOSCapsStation);
+ &ar->QOSCapsStation);
}
/* WPA */
- if (ar.WPAOpaque.present) {
+ if (ar->WPAOpaque.present) {
pAssocReq->wpaPresent = 1;
- convert_wpa_opaque(pMac, &pAssocReq->wpa, &ar.WPAOpaque);
+ convert_wpa_opaque(pMac, &pAssocReq->wpa, &ar->WPAOpaque);
}
/* RSN */
- if (ar.RSNOpaque.present) {
+ if (ar->RSNOpaque.present) {
pAssocReq->rsnPresent = 1;
- convert_rsn_opaque(pMac, &pAssocReq->rsn, &ar.RSNOpaque);
+ convert_rsn_opaque(pMac, &pAssocReq->rsn, &ar->RSNOpaque);
}
/* Power Capabilities */
- if (ar.PowerCaps.present) {
+ if (ar->PowerCaps.present) {
pAssocReq->powerCapabilityPresent = 1;
convert_power_caps(pMac, &pAssocReq->powerCapability,
- &ar.PowerCaps);
+ &ar->PowerCaps);
}
/* Supported Channels */
- if (ar.SuppChannels.present) {
+ if (ar->SuppChannels.present) {
pAssocReq->supportedChannelsPresent = 1;
convert_supp_channels(pMac, &pAssocReq->supportedChannels,
- &ar.SuppChannels);
+ &ar->SuppChannels);
}
- if (ar.HTCaps.present) {
- qdf_mem_copy(&pAssocReq->HTCaps, &ar.HTCaps,
+ if (ar->HTCaps.present) {
+ qdf_mem_copy(&pAssocReq->HTCaps, &ar->HTCaps,
sizeof(tDot11fIEHTCaps));
}
- if (ar.WMMInfoStation.present) {
+ if (ar->WMMInfoStation.present) {
pAssocReq->wmeInfoPresent = 1;
- qdf_mem_copy(&pAssocReq->WMMInfoStation, &ar.WMMInfoStation,
+ qdf_mem_copy(&pAssocReq->WMMInfoStation, &ar->WMMInfoStation,
sizeof(tDot11fIEWMMInfoStation));
}
- if (ar.WMMCaps.present)
+ if (ar->WMMCaps.present)
pAssocReq->wsmCapablePresent = 1;
if (!pAssocReq->ssidPresent) {
@@ -3349,46 +3354,47 @@
/* there is in 'sir_convert_assoc_req_frame2_struct'? */
/* WSC IE */
- if (ar.WscIEOpaque.present) {
+ if (ar->WscIEOpaque.present) {
pAssocReq->addIEPresent = 1;
- convert_wsc_opaque(pMac, &pAssocReq->addIE, &ar.WscIEOpaque);
+ convert_wsc_opaque(pMac, &pAssocReq->addIE, &ar->WscIEOpaque);
}
- if (ar.P2PIEOpaque.present) {
+ if (ar->P2PIEOpaque.present) {
pAssocReq->addIEPresent = 1;
- convert_p2p_opaque(pMac, &pAssocReq->addIE, &ar.P2PIEOpaque);
+ convert_p2p_opaque(pMac, &pAssocReq->addIE, &ar->P2PIEOpaque);
}
#ifdef WLAN_FEATURE_WFD
- if (ar.WFDIEOpaque.present) {
+ if (ar->WFDIEOpaque.present) {
pAssocReq->addIEPresent = 1;
- convert_wfd_opaque(pMac, &pAssocReq->addIE, &ar.WFDIEOpaque);
+ convert_wfd_opaque(pMac, &pAssocReq->addIE, &ar->WFDIEOpaque);
}
#endif
- if (ar.VHTCaps.present) {
- qdf_mem_copy(&pAssocReq->VHTCaps, &ar.VHTCaps,
+ if (ar->VHTCaps.present) {
+ qdf_mem_copy(&pAssocReq->VHTCaps, &ar->VHTCaps,
sizeof(tDot11fIEVHTCaps));
}
- if (ar.OperatingMode.present) {
- qdf_mem_copy(&pAssocReq->operMode, &ar.OperatingMode,
+ if (ar->OperatingMode.present) {
+ qdf_mem_copy(&pAssocReq->operMode, &ar->OperatingMode,
sizeof(tDot11fIEOperatingMode));
pe_warn("Received Assoc Req with Operating Mode IE");
lim_log_operating_mode(pMac, &pAssocReq->operMode);
}
- if (ar.ExtCap.present) {
+ if (ar->ExtCap.present) {
struct s_ext_cap *ext_cap;
- qdf_mem_copy(&pAssocReq->ExtCap, &ar.ExtCap,
+ qdf_mem_copy(&pAssocReq->ExtCap, &ar->ExtCap,
sizeof(tDot11fIEExtCap));
ext_cap = (struct s_ext_cap *)&pAssocReq->ExtCap.bytes;
pe_debug("timingMeas: %d, finetimingMeas Init: %d, Resp: %d",
ext_cap->timing_meas, ext_cap->fine_time_meas_initiator,
ext_cap->fine_time_meas_responder);
}
- if (ar.he_cap.present) {
- qdf_mem_copy(&pAssocReq->he_cap, &ar.he_cap,
+ if (ar->he_cap.present) {
+ qdf_mem_copy(&pAssocReq->he_cap, &ar->he_cap,
sizeof(tDot11fIEhe_cap));
}
+ qdf_mem_free(ar);
return QDF_STATUS_SUCCESS;