mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
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:
parent
4f36f4e847
commit
5ba3ed7c28
5 changed files with 78 additions and 2 deletions
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue