From 02d5235a7cdd10c20fecba9da11501f560931221 Mon Sep 17 00:00:00 2001 From: Bala Venkatesh Date: Mon, 26 Nov 2018 15:12:58 +0530 Subject: [PATCH] qcacld-3.0: Use htcap_cmn_ie as in structure sSirTdlsAddStaReq Currently, in struct sSirTdlsAddStaReq, unpacked member sSirHtCap is used. But, in the similar TDLS component structure tdls_add_sta_req, packed struct htcap_cmn_ie is used. While typecasting there is possibility of padding of some bytes which results in wrong values. Change-Id: Ic7a561d82640dac72c3c973e51ba97b90e211fa5 CRs-Fixed: 2343375 --- core/mac/inc/sir_api.h | 2 +- core/mac/src/pe/lim/lim_process_tdls.c | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index e08425d8b0..40c7628425 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -3033,7 +3033,7 @@ typedef struct sSirTdlsAddStaReq { uint8_t supported_rates_length; uint8_t supported_rates[SIR_MAC_MAX_SUPP_RATES]; uint8_t htcap_present; - tSirHTCap htCap; + struct htcap_cmn_ie htCap; uint8_t vhtcap_present; tSirVHTCap vhtCap; uint8_t uapsd_queues; diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c index 709c02986d..aa03126f50 100644 --- a/core/mac/src/pe/lim/lim_process_tdls.c +++ b/core/mac/src/pe/lim/lim_process_tdls.c @@ -2037,7 +2037,7 @@ static QDF_STATUS lim_tdls_populate_dot11f_ht_caps(tpAniSirGlobal mac, tSirMacTxBFCapabilityInfo *pTxBFCapabilityInfo; tSirMacASCapabilityInfo *pASCapabilityInfo; - nCfgValue = pTdlsAddStaReq->htCap.capInfo; + nCfgValue = pTdlsAddStaReq->htCap.hc_cap; uHTCapabilityInfo.nCfgValue16 = nCfgValue & 0xFFFF; @@ -2086,7 +2086,7 @@ static QDF_STATUS lim_tdls_populate_dot11f_ht_caps(tpAniSirGlobal mac, pDot11f->shortGI40MHz, pDot11f->dsssCckMode40MHz); - nCfgValue = pTdlsAddStaReq->htCap.ampduParamsInfo; + nCfgValue = pTdlsAddStaReq->htCap.ampdu_param; nCfgValue8 = (uint8_t) nCfgValue; pHTParametersInfo = (tSirMacHTParametersInfo *) &nCfgValue8; @@ -2096,11 +2096,10 @@ static QDF_STATUS lim_tdls_populate_dot11f_ht_caps(tpAniSirGlobal mac, pDot11f->reserved1 = pHTParametersInfo->reserved; pe_debug("AMPDU Param: %x", nCfgValue); - - qdf_mem_copy(pDot11f->supportedMCSSet, pTdlsAddStaReq->htCap.suppMcsSet, + qdf_mem_copy(pDot11f->supportedMCSSet, pTdlsAddStaReq->htCap.mcsset, SIZE_OF_SUPPORTED_MCS_SET); - nCfgValue = pTdlsAddStaReq->htCap.extendedHtCapInfo; + nCfgValue = pTdlsAddStaReq->htCap.extcap; uHTCapabilityInfo.nCfgValue16 = nCfgValue & 0xFFFF; @@ -2108,7 +2107,7 @@ static QDF_STATUS lim_tdls_populate_dot11f_ht_caps(tpAniSirGlobal mac, pDot11f->transitionTime = uHTCapabilityInfo.extHtCapInfo.transitionTime; pDot11f->mcsFeedback = uHTCapabilityInfo.extHtCapInfo.mcsFeedback; - nCfgValue = pTdlsAddStaReq->htCap.txBFCapInfo; + nCfgValue = pTdlsAddStaReq->htCap.txbf_cap; pTxBFCapabilityInfo = (tSirMacTxBFCapabilityInfo *) &nCfgValue; pDot11f->txBF = pTxBFCapabilityInfo->txBF; @@ -2133,7 +2132,7 @@ static QDF_STATUS lim_tdls_populate_dot11f_ht_caps(tpAniSirGlobal mac, pDot11f->compressedSteeringMatrixBFAntennae = pTxBFCapabilityInfo->compressedSteeringMatrixBFAntennae; - nCfgValue = pTdlsAddStaReq->htCap.antennaSelectionInfo; + nCfgValue = pTdlsAddStaReq->htCap.antenna; nCfgValue8 = (uint8_t) nCfgValue; @@ -2475,7 +2474,7 @@ static void lim_tdls_update_hash_node_info(tpAniSirGlobal mac, htCaps->supportedMCSSet); pStaDs->baPolicyFlag = 0xFF; mac->lim.gLimTdlsLinkMode = TDLS_LINK_MODE_N; - pStaDs->ht_caps = pTdlsAddStaReq->htCap.capInfo; + pStaDs->ht_caps = pTdlsAddStaReq->htCap.hc_cap; } else { pStaDs->mlmStaContext.htCapability = 0; mac->lim.gLimTdlsLinkMode = TDLS_LINK_MODE_BG; @@ -2548,9 +2547,11 @@ static void lim_tdls_update_hash_node_info(tpAniSirGlobal mac, */ lim_tdls_populate_matching_rate_set(mac, pStaDs, pTdlsAddStaReq->supported_rates, - pTdlsAddStaReq->supported_rates_length, - (uint8_t *) pTdlsAddStaReq->htCap. - suppMcsSet, psessionEntry, pVhtCaps); + pTdlsAddStaReq-> + supported_rates_length, + (uint8_t *)pTdlsAddStaReq-> + htCap.mcsset, + psessionEntry, pVhtCaps); /* TDLS Dummy AddSTA does not have right capability , is it OK ?? */