wlan: Rate limit certain error logs.
During IMPS failure kmsg gets flooded
with same error logs. This results in
useful logs being overwritten. As a part
of fix, rate limit those error logs.
Change-Id: Ic0d2cf124ae754a366f408e1a73d8bfcb20cea63
CRs-Fixed: 831530
diff --git a/CORE/MAC/src/pe/pmm/pmmApi.c b/CORE/MAC/src/pe/pmm/pmmApi.c
index 38b8a3f..c7a7062 100644
--- a/CORE/MAC/src/pe/pmm/pmmApi.c
+++ b/CORE/MAC/src/pe/pmm/pmmApi.c
@@ -1539,6 +1539,7 @@
{
tPmmState nextState = pMac->pmm.gPmmState;
tSirResultCodes resultCode = eSIR_SME_SUCCESS;
+ static int failCnt = 0;
/* we need to process all the deferred messages enqueued since
* the initiating the WDA_ENTER_IMPS_REQ.
@@ -1582,11 +1583,13 @@
return;
failure:
- PELOGE(pmmLog(pMac, LOGE,
+ if (!(failCnt & 0xF))
+ PELOGE(pmmLog(pMac, LOGE,
FL("pmmImpsSleepRsp failed, Ret Code: %d, next state will be: %d"),
rspStatus,
pMac->pmm.gPmmState);)
+ failCnt++;
pmmImpsUpdateSleepErrStats(pMac, rspStatus);
pMac->pmm.gPmmState = nextState;
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index 89ae987..e202947 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -8325,6 +8325,7 @@
WDI_Status status = WDI_STATUS_SUCCESS ;
WDI_EnterImpsReqParamsType *wdiEnterImpsReqParams;
tWDA_ReqParams *pWdaParams;
+ static int failcnt = 0;
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_INFO,
"------> %s " ,__func__);
@@ -8364,8 +8365,10 @@
pWdaParams);
if(IS_WDI_STATUS_FAILURE(status))
{
- VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
- "Failure in Enter IMPS REQ WDI API, free all the memory " );
+ if (! (failcnt & 0xF))
+ VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+ "Failure in Enter IMPS REQ WDI API, free all the memory " );
+ failcnt++;
vos_mem_free(wdiEnterImpsReqParams);
vos_mem_free(pWdaParams);
WDA_SendMsg(pWDA, WDA_ENTER_IMPS_RSP, NULL , CONVERT_WDI2SIR_STATUS(status)) ;
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index da65654..484bde7 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -6835,6 +6835,7 @@
WDI_Status wdiStatus;
WDI_MainFuncType pfnWDIMainEvHdlr;
WDI_MainStateType wdiOldState;
+ static int failCnt = 0;
/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/*-------------------------------------------------------------------------
@@ -6883,9 +6884,11 @@
}
else
{
- WPAL_TRACE(eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_ERROR,
+ if (!(failCnt & 0xF))
+ WPAL_TRACE(eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_ERROR,
"Unexpected event %d in state: %d",
wdiEV, wdiOldState);
+ failCnt++;
wdiStatus = WDI_STATUS_E_NOT_ALLOWED;
}