summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h17
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg80211.h2
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h1
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c25
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c6
-rw-r--r--CORE/HDD/src/wlan_hdd_hostapd.c2
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c8
-rw-r--r--CORE/MAC/inc/aniGlobal.h2
-rw-r--r--CORE/MAC/inc/wniCfgAp.h23
-rw-r--r--CORE/MAC/inc/wniCfgSta.h14
-rw-r--r--CORE/MAC/src/cfg/cfgProcMsg.c16
-rw-r--r--CORE/MAC/src/pe/lim/limAIDmgmt.c12
-rw-r--r--CORE/MAC/src/pe/lim/limApi.c13
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c14
-rw-r--r--CORE/MAC/src/pe/lim/limProcessCfgUpdates.c18
-rw-r--r--CORE/VOSS/src/vos_api.c6
16 files changed, 158 insertions, 21 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 828f126c8333..06d44639c416 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2661,12 +2661,26 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */
#define CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX (1)
#define CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT (0)
+/*
+ * Max peers number of SAP
+ */
#define CFG_SAP_MAX_NO_PEERS "gSoftApMaxPeers"
#define CFG_SAP_MAX_NO_PEERS_MIN (1)
#define CFG_SAP_MAX_NO_PEERS_MAX (32)
#define CFG_SAP_MAX_NO_PEERS_DEFAULT (32)
/*
+ * Max peers number of P2P GO
+ * To make it backward compatible with old INI file which only set
+ * gSoftApMaxPeers, set gGoMaxPeers default value to 0, and add logic
+ * to set this item same as gSoftApMaxPeers if the value is 0
+ */
+#define CFG_GO_MAX_NO_PEERS "gGoMaxPeers"
+#define CFG_GO_MAX_NO_PEERS_MIN (0)
+#define CFG_GO_MAX_NO_PEERS_MAX (32)
+#define CFG_GO_MAX_NO_PEERS_DEFAULT (0)
+
+/*
* Connection related log Enable/Disable.
* 0x1 - Enable mgmt pkt logs (no probe req/rsp).
* 0x2 - Enable EAPOL pkt logs.
@@ -4399,7 +4413,8 @@ struct hdd_config {
#endif
v_U8_t maxWoWFilters;
v_U8_t wowEnable;
- v_U8_t maxNumberOfPeers;
+ v_U8_t max_sap_peers;
+ v_U8_t max_go_peers;
v_U8_t disableDFSChSwitch;
v_U8_t enableDFSMasterCap;
v_U16_t thermalTempMinLevel0;
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h
index 6fc13ed3588f..86225855b675 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg80211.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h
@@ -1961,7 +1961,7 @@ int wlan_hdd_cfg80211_init(struct device *dev,
void wlan_hdd_cfg80211_deinit(struct wiphy *wiphy);
void wlan_hdd_update_wiphy(struct wiphy *wiphy,
- hdd_config_t *pCfg);
+ hdd_context_t *ctx);
int wlan_hdd_cfg80211_register( struct wiphy *wiphy);
void wlan_hdd_cfg80211_register_frames(hdd_adapter_t* pAdapter);
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index e5cdec427b15..1de463f16776 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -1835,6 +1835,7 @@ struct hdd_context_s
bool driver_being_stopped; /* Track if DRIVER STOP cmd is sent */
uint8_t max_mc_addr_list;
struct acs_dfs_policy acs_policy;
+ uint8_t max_peers;
};
/*---------------------------------------------------------------------------
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 3c1e918f7982..edd01861f435 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -3001,12 +3001,19 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_IBSS_ATIM_WIN_SIZE_MAX ),
REG_VARIABLE( CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
- hdd_config_t, maxNumberOfPeers,
+ hdd_config_t, max_sap_peers,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_SAP_MAX_NO_PEERS_DEFAULT,
CFG_SAP_MAX_NO_PEERS_MIN,
CFG_SAP_MAX_NO_PEERS_MAX),
+ REG_VARIABLE( CFG_GO_MAX_NO_PEERS, WLAN_PARAM_Integer,
+ hdd_config_t, max_go_peers,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_GO_MAX_NO_PEERS_DEFAULT,
+ CFG_GO_MAX_NO_PEERS_MIN,
+ CFG_GO_MAX_NO_PEERS_MAX),
+
REG_VARIABLE( CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME , WLAN_PARAM_Integer,
hdd_config_t, isIbssPowerSaveAllowed,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -6857,7 +6864,7 @@ v_BOOL_t hdd_update_config_dat( hdd_context_t *pHddCtx )
}
else
{
- val = pConfig->maxNumberOfPeers;
+ val = pHddCtx->max_peers;
}
if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ASSOC_STA_LIMIT, val,
@@ -6866,6 +6873,20 @@ v_BOOL_t hdd_update_config_dat( hdd_context_t *pHddCtx )
fStatus = FALSE;
hddLog(LOGE,"Failure: Could not pass on WNI_CFG_ASSOC_STA_LIMIT configuration info to CCM");
}
+
+ if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ASSOC_STA_LIMIT_AP,
+ pConfig->max_sap_peers, NULL, eANI_BOOLEAN_FALSE)
+ == eHAL_STATUS_FAILURE) {
+ fStatus = FALSE;
+ hddLog(LOGE,"can't pass WNI_CFG_ASSOC_STA_LIMIT_AP to CCM");
+ }
+
+ if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ASSOC_STA_LIMIT_GO,
+ pConfig->max_go_peers, NULL, eANI_BOOLEAN_FALSE)
+ == eHAL_STATUS_FAILURE) {
+ fStatus = FALSE;
+ hddLog(LOGE,"can't pass WNI_CFG_ASSOC_STA_LIMIT_GO to CCM");
+ }
#endif
if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
pConfig->enableLpwrImgTransition, NULL, eANI_BOOLEAN_FALSE)
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index a21a026a5331..340f70c87c83 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -12055,7 +12055,7 @@ int wlan_hdd_cfg80211_init(struct device *dev,
}
#endif
- wiphy->max_ap_assoc_sta = pCfg->maxNumberOfPeers;
+ wiphy->max_ap_assoc_sta = pHddCtx->max_peers;
#ifdef QCA_HT_2040_COEX
wiphy->features |= NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE;
#endif
@@ -12098,9 +12098,9 @@ void wlan_hdd_cfg80211_deinit(struct wiphy *wiphy)
* of all required members can be done here.
*/
void wlan_hdd_update_wiphy(struct wiphy *wiphy,
- hdd_config_t *pCfg)
+ hdd_context_t *ctx)
{
- wiphy->max_ap_assoc_sta = pCfg->maxNumberOfPeers;
+ wiphy->max_ap_assoc_sta = ctx->max_peers;
if (!sme_IsFeatureSupportedByFW(DOT11AC)) {
wiphy->bands[IEEE80211_BAND_2GHZ]->vht_cap.vht_supported = 0;
wiphy->bands[IEEE80211_BAND_2GHZ]->vht_cap.cap = 0;
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 2a806fe8c5ac..480aafb07d5b 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -5398,7 +5398,7 @@ hdd_softap_get_sta_info(hdd_adapter_t *pAdapter, v_U8_t *pBuf, int buf_len)
pBuf += len;
buf_len -= len;
- maxSta = pHddCtx->cfg_ini->maxNumberOfPeers;
+ maxSta = pHddCtx->max_peers;
for (i = 0; i <= maxSta; i++)
{
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 77c3338c9ab7..32d21d50ecd6 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -14630,6 +14630,12 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
goto err_config;
}
+ if (0 == pHddCtx->cfg_ini->max_go_peers)
+ pHddCtx->cfg_ini->max_go_peers = pHddCtx->cfg_ini->max_sap_peers;
+
+ pHddCtx->max_peers = MAX(pHddCtx->cfg_ini->max_sap_peers,
+ pHddCtx->cfg_ini->max_go_peers);
+
((VosContextType*)pVosContext)->pHIFContext = hif_sc;
/* store target type and target version info in hdd ctx */
@@ -14816,7 +14822,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
goto err_vosclose;
}
- wlan_hdd_update_wiphy(wiphy, pHddCtx->cfg_ini);
+ wlan_hdd_update_wiphy(wiphy, pHddCtx);
if (sme_IsFeatureSupportedByFW(DOT11AC)) {
hddLog(VOS_TRACE_LEVEL_INFO_HIGH, "%s: support 11ac", __func__);
diff --git a/CORE/MAC/inc/aniGlobal.h b/CORE/MAC/inc/aniGlobal.h
index aac66ec46068..4c1235f8dabc 100644
--- a/CORE/MAC/inc/aniGlobal.h
+++ b/CORE/MAC/inc/aniGlobal.h
@@ -592,6 +592,8 @@ typedef struct sAniSirLim
/// Variable to keep track of number of currently associated STAs
tANI_U16 gLimNumOfAniSTAs; // count of ANI peers
tANI_U16 gLimAssocStaLimit;
+ uint16_t glim_assoc_sta_limit_ap;
+ uint16_t glim_assoc_sta_limit_go;
// Heart-Beat interval value
tANI_U32 gLimHeartBeatCount;
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index a99db6140104..dbc5ab58d29f 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -343,7 +343,8 @@
#define WNI_CFG_VHT_ENABLE_TXBF_20MHZ 296
#define WNI_CFG_TDLS_WMM_MODE_ENABLED 297
#define WNI_CFG_TGT_GTX_USR_CFG 298
-
+#define WNI_CFG_ASSOC_STA_LIMIT_GO 299
+#define WNI_CFG_ASSOC_STA_LIMIT_AP 300
/*
* String parameter lengths
*/
@@ -2516,10 +2517,26 @@
#define WNI_CFG_TGT_GTX_USR_CFG_APMAX 32
#define WNI_CFG_TGT_GTX_USR_CFG_APDEF 32
-#define CFG_PARAM_MAX_NUM 299
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_STAMIN 1
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_STAMAX 32
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_STADEF 10
+
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_APMIN 1
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_APMAX 32
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_APDEF 10
+
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_STAMIN 1
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_STAMAX 32
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_STADEF 10
+
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_APMIN 1
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_APMAX 32
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_APDEF 10
+
+#define CFG_PARAM_MAX_NUM 301
#define CFG_AP_IBUF_MAX_SIZE 246
#define CFG_AP_SBUF_MAX_SIZE 3233
-#define CFG_STA_IBUF_MAX_SIZE 242
+#define CFG_STA_IBUF_MAX_SIZE 244
#define CFG_STA_SBUF_MAX_SIZE 3199
#define CFG_SEM_MAX_NUM 19
diff --git a/CORE/MAC/inc/wniCfgSta.h b/CORE/MAC/inc/wniCfgSta.h
index cfeafbc91051..2ae9de219ba1 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -337,6 +337,8 @@
#define WNI_CFG_VHT_ENABLE_TXBF_20MHZ 296
#define WNI_CFG_TDLS_WMM_MODE_ENABLED 297
#define WNI_CFG_TGT_GTX_USR_CFG 298
+#define WNI_CFG_ASSOC_STA_LIMIT_GO 299
+#define WNI_CFG_ASSOC_STA_LIMIT_AP 300
/*
* String parameter lengths
@@ -1609,8 +1611,16 @@
#define WNI_CFG_TGT_GTX_USR_CFG_STAMAX 32
#define WNI_CFG_TGT_GTX_USR_CFG_STADEF 32
-#define CFG_PARAM_MAX_NUM 299
-#define CFG_STA_IBUF_MAX_SIZE 242
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_STAMIN 1
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_STAMAX 32
+#define WNI_CFG_ASSOC_STA_LIMIT_AP_STADEF 10
+
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_STAMIN 1
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_STAMAX 32
+#define WNI_CFG_ASSOC_STA_LIMIT_GO_STADEF 10
+
+#define CFG_PARAM_MAX_NUM 301
+#define CFG_STA_IBUF_MAX_SIZE 244
#define CFG_STA_SBUF_MAX_SIZE 3199
#define CFG_SEM_MAX_NUM 19
diff --git a/CORE/MAC/src/cfg/cfgProcMsg.c b/CORE/MAC/src/cfg/cfgProcMsg.c
index f81af89754ca..943ba48cab56 100644
--- a/CORE/MAC/src/cfg/cfgProcMsg.c
+++ b/CORE/MAC/src/cfg/cfgProcMsg.c
@@ -1905,7 +1905,21 @@ struct cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_TGT_GTX_USR_CFG_STAMIN,
WNI_CFG_TGT_GTX_USR_CFG_STAMAX,
- WNI_CFG_TGT_GTX_USR_CFG_STADEF}
+ WNI_CFG_TGT_GTX_USR_CFG_STADEF},
+
+ {WNI_CFG_ASSOC_STA_LIMIT_AP,
+ CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
+ CFG_CTL_NTF_LIM,
+ WNI_CFG_ASSOC_STA_LIMIT_AP_STAMIN,
+ WNI_CFG_ASSOC_STA_LIMIT_AP_STAMAX,
+ WNI_CFG_ASSOC_STA_LIMIT_AP_STADEF},
+
+ {WNI_CFG_ASSOC_STA_LIMIT_GO,
+ CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
+ CFG_CTL_NTF_LIM,
+ WNI_CFG_ASSOC_STA_LIMIT_GO_STAMIN,
+ WNI_CFG_ASSOC_STA_LIMIT_GO_STAMAX,
+ WNI_CFG_ASSOC_STA_LIMIT_GO_STADEF}
};
struct cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = {
diff --git a/CORE/MAC/src/pe/lim/limAIDmgmt.c b/CORE/MAC/src/pe/lim/limAIDmgmt.c
index d26a23b07dd0..3d3d7a3aad8f 100644
--- a/CORE/MAC/src/pe/lim/limAIDmgmt.c
+++ b/CORE/MAC/src/pe/lim/limAIDmgmt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2014, 2016 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -134,10 +134,18 @@ tANI_U16
limAssignPeerIdx(tpAniSirGlobal pMac, tpPESession pSessionEntry)
{
tANI_U16 peerId;
+ uint8 max_peer = 0;
+
+ if (pSessionEntry->pePersona == VOS_STA_SAP_MODE)
+ max_peer = pMac->lim.glim_assoc_sta_limit_ap;
+
+ if (pSessionEntry->pePersona == VOS_P2P_GO_MODE)
+ max_peer = pMac->lim.glim_assoc_sta_limit_go;
// make sure we haven't exceeded the configurable limit on associations
// This count is global to ensure that it doesnt exceed the hardware limits.
- if (peGetCurrentSTAsCount(pMac) >= pMac->lim.gLimAssocStaLimit)
+ if (peGetCurrentSTAsCount(pMac) >= pMac->lim.gLimAssocStaLimit ||
+ pSessionEntry->gLimNumOfCurrentSTAs >= max_peer)
{
// too many associations already active
return 0;
diff --git a/CORE/MAC/src/pe/lim/limApi.c b/CORE/MAC/src/pe/lim/limApi.c
index 068620d8d6c0..4b41ef7f6d2e 100644
--- a/CORE/MAC/src/pe/lim/limApi.c
+++ b/CORE/MAC/src/pe/lim/limApi.c
@@ -305,6 +305,19 @@ static void __limInitAssocVars(tpAniSirGlobal pMac)
}
pMac->lim.gLimAssocStaLimit = val;
pMac->lim.gLimIbssStaLimit = val;
+ if(wlan_cfgGetInt(pMac, WNI_CFG_ASSOC_STA_LIMIT_AP, &val) != eSIR_SUCCESS)
+ limLog( pMac, LOGP, FL( "cfg get assoc sta of AP limit failed" ));
+
+ pMac->lim.glim_assoc_sta_limit_ap = val;
+
+ if(wlan_cfgGetInt(pMac, WNI_CFG_ASSOC_STA_LIMIT_GO, &val) != eSIR_SUCCESS)
+ limLog( pMac, LOGP, FL( "cfg get assoc sta of GO limit failed" ));
+
+ pMac->lim.glim_assoc_sta_limit_go = val;
+
+ limLog(pMac, LOG1, FL("max_peer:%d ap_peer:%d go_peer:%d"),
+ pMac->lim.gLimAssocStaLimit, pMac->lim.glim_assoc_sta_limit_ap,
+ pMac->lim.glim_assoc_sta_limit_go);
// Place holder for current authentication request
// being handled
pMac->lim.gpLimMlmAuthReq = NULL;
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
index cc24b8f76fae..c3934ef6bd0d 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
@@ -253,6 +253,7 @@ limProcessAssocReqFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,
tANI_U16 assocId = 0;
bool assoc_req_copied = false;
tDot11fIEVHTCaps *vht_caps;
+ uint8 max_peer = 0;
limGetPhyMode(pMac, &phyMode, psessionEntry);
@@ -847,10 +848,21 @@ limProcessAssocReqFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,
/// Extract pre-auth context for the STA, if any.
pStaPreAuthContext = limSearchPreAuthList(pMac, pHdr->sa);
+ limLog(pMac, LOG1, FL( "max:%d ap:%d go:%d mode:%d"),
+ pMac->lim.gLimAssocStaLimit, pMac->lim.glim_assoc_sta_limit_ap,
+ pMac->lim.glim_assoc_sta_limit_go, psessionEntry->pePersona);
+
+ if (psessionEntry->pePersona == VOS_STA_SAP_MODE)
+ max_peer = pMac->lim.glim_assoc_sta_limit_ap;
+
+ if (psessionEntry->pePersona == VOS_P2P_GO_MODE)
+ max_peer = pMac->lim.glim_assoc_sta_limit_go;
+
if (pStaDs == NULL)
{
/// Requesting STA is not currently associated
- if (peGetCurrentSTAsCount(pMac) == pMac->lim.gLimAssocStaLimit)
+ if ((peGetCurrentSTAsCount(pMac) == pMac->lim.gLimAssocStaLimit)||
+ (psessionEntry->gLimNumOfCurrentSTAs == max_peer))
{
/**
* Maximum number of STAs that AP can handle reached.
diff --git a/CORE/MAC/src/pe/lim/limProcessCfgUpdates.c b/CORE/MAC/src/pe/lim/limProcessCfgUpdates.c
index 37e45a8e3c72..ee433aedc5b5 100644
--- a/CORE/MAC/src/pe/lim/limProcessCfgUpdates.c
+++ b/CORE/MAC/src/pe/lim/limProcessCfgUpdates.c
@@ -552,6 +552,24 @@ limHandleCFGparamUpdate(tpAniSirGlobal pMac, tANI_U32 cfgId)
pMac->lim.gLimAssocStaLimit = (tANI_U16)val1;
break;
+ case WNI_CFG_ASSOC_STA_LIMIT_GO:
+ if(wlan_cfgGetInt(pMac, WNI_CFG_ASSOC_STA_LIMIT_GO, &val1)
+ != eSIR_SUCCESS) {
+ limLog(pMac, LOGE, FL("Unable to get WNI_CFG_ASSOC_STA_LIMIT_GO"));
+ break;
+ }
+ pMac->lim.glim_assoc_sta_limit_go = (tANI_U16)val1;
+ break;
+
+ case WNI_CFG_ASSOC_STA_LIMIT_AP:
+ if(wlan_cfgGetInt(pMac, WNI_CFG_ASSOC_STA_LIMIT_AP, &val1)
+ != eSIR_SUCCESS) {
+ limLog(pMac, LOGE, FL("Unable to get WNI_CFG_ASSOC_STA_LIMIT_AP"));
+ break;
+ }
+ pMac->lim.glim_assoc_sta_limit_ap = (tANI_U16)val1;
+ break;
+
case WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC:
if (wlan_cfgGetInt
(pMac, WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC, &val1) !=
diff --git a/CORE/VOSS/src/vos_api.c b/CORE/VOSS/src/vos_api.c
index b80c021b9499..dc96f4f4d7b6 100644
--- a/CORE/VOSS/src/vos_api.c
+++ b/CORE/VOSS/src/vos_api.c
@@ -496,7 +496,7 @@ VOS_STATUS vos_open( v_CONTEXT_t *pVosContext, v_SIZE_t hddContextSize )
scn->enableuartprint = pHddCtx->cfg_ini->enablefwprint;
scn->enablefwlog = pHddCtx->cfg_ini->enablefwlog;
scn->enableFwSelfRecovery = pHddCtx->cfg_ini->enableFwSelfRecovery;
- scn->max_no_of_peers = pHddCtx->cfg_ini->maxNumberOfPeers;
+ scn->max_no_of_peers = pHddCtx->max_peers;
#ifdef WLAN_FEATURE_LPSS
scn->enablelpasssupport = pHddCtx->cfg_ini->enablelpasssupport;
#endif
@@ -661,9 +661,9 @@ VOS_STATUS vos_open( v_CONTEXT_t *pVosContext, v_SIZE_t hddContextSize )
/* Number of peers limit differs in each chip version. If peer max
* limit configured in ini exceeds more than supported, WMA adjusts
* and keeps correct limit in macOpenParms.maxStation. So, make sure
- * ini entry pHddCtx->cfg_ini->maxNumberOfPeers has adjusted value
+ * pHddCtx->max_peers has adjusted value
*/
- pHddCtx->cfg_ini->maxNumberOfPeers = macOpenParms.maxStation;
+ pHddCtx->max_peers = macOpenParms.maxStation;
HTCHandle = vos_get_context(VOS_MODULE_ID_HTC, gpVosContext);
if (!HTCHandle) {
VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_FATAL,