From 1aefffd5f3b70600981750f10b5fb302c5bf9272 Mon Sep 17 00:00:00 2001 From: Kalikinkar dhara Date: Thu, 29 May 2014 20:40:03 -0700 Subject: qcacld: Sessionized Probe Rsp update for AP+AP For AP+AP, additional IE coming from HDD were passed through a common wlan_cfg buffer. This will cause wrong values to be read by consuming modules for multiple session case (AP+AP). To fix this, additional IE are passed to consumer modules via sessionized buffer thus avoiding any conflict. CRs-fixed: 649786 Change-Id: I88ce027d50f6da7825667e735b1f159fd94e2dc1 --- CORE/SAP/src/sapModule.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'CORE/SAP/src/sapModule.c') diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c index 50bcb2591c8d..a48e1e92ac32 100644 --- a/CORE/SAP/src/sapModule.c +++ b/CORE/SAP/src/sapModule.c @@ -2770,6 +2770,52 @@ VOS_STATUS WLANSAP_Set_Dfs_Ignore_CAC(v_PVOID_t pvosGCtx, v_U8_t ignore_cac) return VOS_STATUS_SUCCESS; } +VOS_STATUS WLANSAP_UpdateSapConfigAddIE(tsap_Config_t *pConfig, + const tANI_U8 *pAdditionIEBuffer, + tANI_U16 additionIELength) +{ + VOS_STATUS status = VOS_STATUS_SUCCESS; + + if (NULL == pConfig) { + return VOS_STATUS_E_FAULT; + } + if ( (pAdditionIEBuffer != NULL) && (additionIELength != 0) ) { + /* initialize the buffer pointer so that pe can copy*/ + if (additionIELength > 0) { + pConfig->addnIEsBufferLen = additionIELength; + pConfig->addnIEsBuffer = vos_mem_malloc(additionIELength); + if (NULL == pConfig->addnIEsBuffer) { + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, + "%s: Could not copy PROBE_RSP_ADDNIE", __func__); + return VOS_STATUS_E_NOMEM; + } + vos_mem_copy(pConfig->addnIEsBuffer, + pAdditionIEBuffer, additionIELength); + } + } else { + vos_mem_free(pConfig->addnIEsBuffer); + pConfig->addnIEsBufferLen = 0; + pConfig->addnIEsBuffer = NULL; + + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, + "%s: No Probe Response IE received in set beacon", __func__); + } + + return (status); +} + + +VOS_STATUS WLANSAP_ResetSapConfigAddIE(tsap_Config_t *pConfig ) +{ + if (NULL == pConfig) { + return VOS_STATUS_E_FAULT; + } + vos_mem_free( pConfig->addnIEsBuffer); + pConfig->addnIEsBufferLen = 0; + pConfig->addnIEsBuffer = NULL; + return VOS_STATUS_SUCCESS; +} + /*========================================================================== FUNCTION WLANSAP_Get_DfsNol -- cgit v1.2.3