prima: release v3.2.3.7

git://codeaurora.org/external/wlan/prima.git

	7a02fe9 wlan : Revision 3.2.3.7
	96cad22 wlan: Protect cfg APIs during uninitialized access
	fcb685b wlan: Fix for Multicast filtering failure when NSoffload is enabled
	da89705 wlan : Revision 3.2.3.6
	4d61c19 wlan: Passing correct list to cfg before changing country code.

Signed-off-by: Iliyan Malchev <malchev@google.com>
This commit is contained in:
Iliyan Malchev 2013-09-18 12:52:50 -07:00
parent 4f36f4e847
commit 5ba3ed7c28
5 changed files with 78 additions and 2 deletions

View file

@ -568,10 +568,13 @@ void hdd_conf_ns_offload(hdd_adapter_t *pAdapter, v_BOOL_t fenable)
tANI_U8 selfIPv6Addr[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][SIR_MAC_IPV6_ADDR_LEN] = {{0,}};
tANI_BOOLEAN selfIPv6AddrValid[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA] = {0};
tSirHostOffloadReq offLoadRequest;
hdd_context_t *pHddCtx;
int i =0;
eHalStatus returnStatus;
pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
ENTER();
if (fenable)
{
@ -641,6 +644,20 @@ void hdd_conf_ns_offload(hdd_adapter_t *pAdapter, v_BOOL_t fenable)
offLoadRequest.offloadType = SIR_IPV6_NS_OFFLOAD;
offLoadRequest.enableOrDisable = SIR_OFFLOAD_ENABLE;
hddLog (VOS_TRACE_LEVEL_INFO,
"configuredMcastBcastFilter: %d",pHddCtx->configuredMcastBcastFilter);
if((HDD_MCASTBCASTFILTER_FILTER_ALL_MULTICAST ==
pHddCtx->configuredMcastBcastFilter) ||
(HDD_MCASTBCASTFILTER_FILTER_ALL_MULTICAST_BROADCAST ==
pHddCtx->configuredMcastBcastFilter))
{
hddLog (VOS_TRACE_LEVEL_INFO,
"Set offLoadRequest with SIR_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE \n", __func__);
offLoadRequest.enableOrDisable =
SIR_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE;
}
vos_mem_copy(&offLoadRequest.params.hostIpv6Addr,
&offLoadRequest.nsOffloadInfo.targetIPv6Addr[0],
sizeof(tANI_U8)*SIR_MAC_IPV6_ADDR_LEN);

View file

@ -60,9 +60,9 @@ BRIEF DESCRIPTION:
#define QWLAN_VERSION_MINOR 2
#define QWLAN_VERSION_PATCH 3
#define QWLAN_VERSION_EXTRA ""
#define QWLAN_VERSION_BUILD 5
#define QWLAN_VERSION_BUILD 7
#define QWLAN_VERSIONSTR "3.2.3.5"
#define QWLAN_VERSIONSTR "3.2.3.7"
#endif /* QWLAN_VERSION_H */

View file

@ -3249,7 +3249,9 @@ typedef struct sSirUpdateAPWPARSNIEsReq
#define SIR_OFFLOAD_DISABLE 0
#define SIR_OFFLOAD_ENABLE 1
#define SIR_OFFLOAD_BCAST_FILTER_ENABLE 0x2
#define SIR_OFFLOAD_MCAST_FILTER_ENABLE 0x4
#define SIR_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_BCAST_FILTER_ENABLE)
#define SIR_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_MCAST_FILTER_ENABLE)
#ifdef WLAN_NS_OFFLOAD
typedef struct sSirNsOffloadReq

View file

@ -74,12 +74,22 @@ static void Notify(tpAniSirGlobal, tANI_U16, tANI_U32);
// ---------------------------------------------------------------------
tANI_U32 cfgNeedRestart(tpAniSirGlobal pMac, tANI_U16 cfgId)
{
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return 0;
}
return !!(pMac->cfg.gCfgEntry[cfgId].control & CFG_CTL_RESTART) ;
}
// ---------------------------------------------------------------------
tANI_U32 cfgNeedReload(tpAniSirGlobal pMac, tANI_U16 cfgId)
{
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return 0;
}
return !!(pMac->cfg.gCfgEntry[cfgId].control & CFG_CTL_RELOAD) ;
}
@ -184,6 +194,12 @@ cfgSetInt(tpAniSirGlobal pMac, tANI_U16 cfgId, tANI_U32 value)
return eSIR_CFG_INVALID_ID;
}
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return eSIR_CFG_INVALID_ID;
}
control = pMac->cfg.gCfgEntry[cfgId].control;
index = control & CFG_BUF_INDX_MASK;
retVal = eSIR_SUCCESS;
@ -259,6 +275,12 @@ cfgCheckValid(tpAniSirGlobal pMac, tANI_U16 cfgId)
return(eSIR_CFG_INVALID_ID);
}
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return eSIR_CFG_INVALID_ID;
}
control = pMac->cfg.gCfgEntry[cfgId].control;
// Check if parameter is valid
@ -306,6 +328,12 @@ wlan_cfgGetInt(tpAniSirGlobal pMac, tANI_U16 cfgId, tANI_U32 *pValue)
return retVal;
}
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return eSIR_CFG_INVALID_ID;
}
control = pMac->cfg.gCfgEntry[cfgId].control;
index = control & CFG_BUF_INDX_MASK;
retVal = eSIR_SUCCESS;
@ -370,6 +398,12 @@ cfgIncrementInt(tpAniSirGlobal pMac, tANI_U16 cfgId, tANI_U32 value)
retVal = eSIR_CFG_INVALID_ID;
}
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return eSIR_CFG_INVALID_ID;
}
control = pMac->cfg.gCfgEntry[cfgId].control;
index = control & CFG_BUF_INDX_MASK;
retVal = eSIR_SUCCESS;
@ -468,6 +502,12 @@ cfgSetStrNotify(tpAniSirGlobal pMac, tANI_U16 cfgId, tANI_U8 *pStr,
return eSIR_CFG_INVALID_ID;
}
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return eSIR_CFG_INVALID_ID;
}
control = pMac->cfg.gCfgEntry[cfgId].control;
index = control & CFG_BUF_INDX_MASK;
retVal = eSIR_SUCCESS;
@ -648,6 +688,12 @@ wlan_cfgGetStrMaxLen(tpAniSirGlobal pMac, tANI_U16 cfgId, tANI_U32 *pLength)
retVal = eSIR_CFG_INVALID_ID;
}
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return eSIR_CFG_INVALID_ID;
}
control = pMac->cfg.gCfgEntry[cfgId].control;
index = control & CFG_BUF_INDX_MASK;
retVal = eSIR_SUCCESS;
@ -709,6 +755,12 @@ wlan_cfgGetStrLen(tpAniSirGlobal pMac, tANI_U16 cfgId, tANI_U32 *pLength)
retVal = eSIR_CFG_INVALID_ID;
}
if (!pMac->cfg.gCfgEntry)
{
PELOGE(cfgLog(pMac, LOGE, FL("gCfgEntry is NULL"));)
return eSIR_CFG_INVALID_ID;
}
control = pMac->cfg.gCfgEntry[cfgId].control;
index = control & CFG_BUF_INDX_MASK;
retVal = eSIR_SUCCESS;

View file

@ -3841,6 +3841,11 @@ tANI_BOOLEAN csrLearnCountryInformation( tpAniSirGlobal pMac, tSirBssDescription
if ( domainId != pMac->scan.domainIdCurrent )
{
tSirMacChanInfo* pMacChnSet = (tSirMacChanInfo *)(&pIesLocal->Country.triplets[0]);
palCopyMemory( pMac->hHdd, pMac->scan.countryCode11d, pIesLocal->Country.country,
sizeof( pMac->scan.countryCode11d ) );
csrSetCfgCountryCode(pMac, pIesLocal->Country.country);
WDA_SetRegDomain(pMac, domainId);
pMac->scan.domainIdCurrent = domainId;
// Check whether AP provided the 2.4GHZ list or 5GHZ list
if(CSR_IS_CHANNEL_24GHZ(pMacChnSet[0].firstChanNum))
{