summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Kondabattini <ganeshk@qti.qualcomm.com>2014-08-01 15:33:40 +0530
committerPitani Venkata Rajesh Kumar <c_vpitan@qti.qualcomm.com>2014-08-06 13:37:07 +0530
commit974bf54ed4ae8a4b66514ec51130df2f3708adad (patch)
treed94159da781e156d42e096ad0a62362e8830b8fe
parent9b2e8472ee306256d212619e7706bbc4457de3f5 (diff)
qcacld: Send ENTER BMPS RESP and EXIT BMPS RESP in failure cases
In functions pmmOffloadEnterBmpsReqHandler and pmmOffloadExitBmpsReqHandler, the lim is not sending the response back to SME in failure cases. This can lead to SME active command queue stuck. This change also has improvements in vos_trace for debugging purpose. Change-Id: Ibfef515a44d3ee17cc336ba9c6250e9569e203ed CRs-Fixed: 697637
-rw-r--r--CORE/HDD/src/wlan_hdd_trace.c2
-rw-r--r--CORE/MAC/src/pe/lim/limTrace.c38
-rw-r--r--CORE/MAC/src/pe/pmm/pmmApi.c14
-rw-r--r--CORE/SME/src/sme_common/sme_Trace.c4
-rw-r--r--CORE/VOSS/inc/vos_trace.h2
-rw-r--r--CORE/VOSS/src/vos_trace.c4
6 files changed, 38 insertions, 26 deletions
diff --git a/CORE/HDD/src/wlan_hdd_trace.c b/CORE/HDD/src/wlan_hdd_trace.c
index 69100959954c..f7d683e6522a 100644
--- a/CORE/HDD/src/wlan_hdd_trace.c
+++ b/CORE/HDD/src/wlan_hdd_trace.c
@@ -107,7 +107,7 @@ static tANI_U8 *hddTraceGetEventString(tANI_U32 code)
void hddTraceDump(void *pMac, tpvosTraceRecord pRecord, tANI_U16 recIndex)
{
- hddLog(LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ",
+ hddLog(LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ",
recIndex, pRecord->time, pRecord->session,
"HDD Event:", hddTraceGetEventString(pRecord->code),
pRecord->data);
diff --git a/CORE/MAC/src/pe/lim/limTrace.c b/CORE/MAC/src/pe/lim/limTrace.c
index 4104c92e84f5..5f1e1981d6fe 100644
--- a/CORE/MAC/src/pe/lim/limTrace.c
+++ b/CORE/MAC/src/pe/lim/limTrace.c
@@ -150,15 +150,15 @@ void limTraceDump(tpAniSirGlobal pMac, tpvosTraceRecord pRecord, tANI_U16 recInd
switch (pRecord->code) {
case TRACE_CODE_MLM_STATE:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"MLM State:", limTraceGetMlmStateString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_SME_STATE:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"SME State:", limTraceGetSmeStateString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_TX_MGMT:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"TX Mgmt:", frameSubtypeStr[pRecord->data], pRecord->data );
break;
@@ -169,84 +169,84 @@ void limTraceDump(tpAniSirGlobal pMac, tpvosTraceRecord pRecord, tANI_U16 recInd
}
else
{
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(%d) SN: %d ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(%d) SN: %d ", recIndex, pRecord->time, pRecord->session,
"RX Mgmt:", frameSubtypeStr[LIM_TRACE_GET_SUBTYPE(pRecord->data)],
LIM_TRACE_GET_SUBTYPE(pRecord->data),
LIM_TRACE_GET_SSN(pRecord->data) );
}
break;
case TRACE_CODE_RX_MGMT_DROP:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(%d) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(%d) ", recIndex, pRecord->time, pRecord->session,
"Drop RX Mgmt:", __limTraceGetMgmtDropReasonString((tANI_U16)pRecord->data), pRecord->data);
break;
case TRACE_CODE_RX_MGMT_TSF:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s0x%x(%d) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s0x%x(%d) ", recIndex, pRecord->time, pRecord->session,
"RX Mgmt TSF:", " ", pRecord->data, pRecord->data );
break;
case TRACE_CODE_TX_COMPLETE:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %d " , recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %d " , recIndex, pRecord->time, pRecord->session,
"TX Complete", pRecord->data );
break;
case TRACE_CODE_TX_SME_MSG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"TX SME Msg:", macTraceGetSmeMsgString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_RX_SME_MSG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
LIM_TRACE_GET_DEFRD_OR_DROPPED(pRecord->data) ? "Def/Drp LIM Msg:": "RX Sme Msg:",
macTraceGetSmeMsgString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_TX_WDA_MSG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"TX WDA Msg:", macTraceGetWdaMsgString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_RX_WDA_MSG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
LIM_TRACE_GET_DEFRD_OR_DROPPED(pRecord->data) ? "Def/Drp LIM Msg:": "RX WDA Msg:",
macTraceGetWdaMsgString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_TX_LIM_MSG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"TX LIM Msg:", macTraceGetLimMsgString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_RX_LIM_MSG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
LIM_TRACE_GET_DEFRD_OR_DROPPED(pRecord->data) ? "Def/Drp LIM Msg:": "RX LIM Msg",
macTraceGetLimMsgString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_TX_CFG_MSG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"TX CFG Msg:", macTraceGetCfgMsgString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_RX_CFG_MSG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
LIM_TRACE_GET_DEFRD_OR_DROPPED(pRecord->data) ? "Def/Drp LIM Msg:": "RX CFG Msg:",
macTraceGetCfgMsgString((tANI_U16)MAC_TRACE_GET_MSG_ID(pRecord->data)),
pRecord->data );
break;
case TRACE_CODE_TIMER_ACTIVATE:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"Timer Actvtd", __limTraceGetTimerString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_TIMER_DEACTIVATE:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) ", recIndex, pRecord->time, pRecord->session,
"Timer DeActvtd", __limTraceGetTimerString((tANI_U16)pRecord->data), pRecord->data );
break;
case TRACE_CODE_INFO_LOG:
- limLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x) \n", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x) \n", recIndex, pRecord->time, pRecord->session,
"INFORMATION_LOG", macTraceGetInfoLogString((tANI_U16)pRecord->data), pRecord->data );
break;
default :
- limLog(pMac, LOGE, "%04d %012u S%d %-14s(%d) (0x%x) ", recIndex, pRecord->time, pRecord->session,
+ limLog(pMac, LOGE, "%04d %012llu S%d %-14s(%d) (0x%x) ", recIndex, pRecord->time, pRecord->session,
"Unknown Code", pRecord->code, pRecord->data );
break;
}
diff --git a/CORE/MAC/src/pe/pmm/pmmApi.c b/CORE/MAC/src/pe/pmm/pmmApi.c
index 59faacfe941e..f19742704859 100644
--- a/CORE/MAC/src/pe/pmm/pmmApi.c
+++ b/CORE/MAC/src/pe/pmm/pmmApi.c
@@ -3155,7 +3155,10 @@ tSirRetStatus pmmOffloadEnterBmpsReqHandler(tpAniSirGlobal pMac,
if (NULL == pEnablePsReqParams)
{
pmmLog(pMac, LOGE,
- FL("Memory allocation failed for pEnablePsReqParams"));
+ FL("Memory allocation failed for pEnablePsReqParams"));
+ limSendSmeRsp(pMac, eWNI_PMC_ENTER_BMPS_RSP, eSIR_FAILURE,
+ psessionEntry->smeSessionId,
+ psessionEntry->transactionId);
return eSIR_MEM_ALLOC_FAILED;
}
@@ -3187,6 +3190,9 @@ tSirRetStatus pmmOffloadEnterBmpsReqHandler(tpAniSirGlobal pMac,
{
pmmLog(pMac, LOGE, FL("Posting WDA_ENTER_BMPS_REQ failed"));
vos_mem_free(pEnablePsReqParams);
+ limSendSmeRsp(pMac, eWNI_PMC_ENTER_BMPS_RSP, eSIR_FAILURE,
+ psessionEntry->smeSessionId,
+ psessionEntry->transactionId);
return eSIR_FAILURE;
}
/*
@@ -3296,6 +3302,9 @@ tSirRetStatus pmmOffloadExitBmpsReqHandler(tpAniSirGlobal pMac,
if (NULL == pDisablePsReqParams)
{
pmmLog(pMac, LOGE, FL("Memory allocation failed for tDisablePsParams"));
+ limSendSmeRsp(pMac, eWNI_PMC_EXIT_BMPS_RSP, eSIR_FAILURE,
+ psessionEntry->smeSessionId,
+ psessionEntry->transactionId);
return eSIR_MEM_ALLOC_FAILED;
}
@@ -3315,6 +3324,9 @@ tSirRetStatus pmmOffloadExitBmpsReqHandler(tpAniSirGlobal pMac,
{
pmmLog(pMac, LOGE, FL("Posting WDA_EXIT_BMPS_REQ failed"));
vos_mem_free(pDisablePsReqParams);
+ limSendSmeRsp(pMac, eWNI_PMC_EXIT_BMPS_RSP, eSIR_FAILURE,
+ psessionEntry->smeSessionId,
+ psessionEntry->transactionId);
return eSIR_FAILURE;
}
/*
diff --git a/CORE/SME/src/sme_common/sme_Trace.c b/CORE/SME/src/sme_common/sme_Trace.c
index b8751c0d0749..0295cbfc9468 100644
--- a/CORE/SME/src/sme_common/sme_Trace.c
+++ b/CORE/SME/src/sme_common/sme_Trace.c
@@ -187,13 +187,13 @@ static void smeTraceDump(tpAniSirGlobal pMac, tpvosTraceRecord pRecord,
{
if (TRACE_CODE_SME_COMMAND == pRecord->code)
{
- smsLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x)", recIndex,
+ smsLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x)", recIndex,
pRecord->time, pRecord->session, "SME COMMAND:",
smeTraceGetCommandString(pRecord->data), pRecord->data );
}
else
{
- smsLog(pMac, LOGE, "%04d %012u S%d %-14s %-30s(0x%x)", recIndex,
+ smsLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x)", recIndex,
pRecord->time, pRecord->session, "RX HDD MSG:",
smeTraceGetRxMsgString(pRecord->code), pRecord->data );
}
diff --git a/CORE/VOSS/inc/vos_trace.h b/CORE/VOSS/inc/vos_trace.h
index 27d85c4c79e8..c7bd2ddbaf64 100644
--- a/CORE/VOSS/inc/vos_trace.h
+++ b/CORE/VOSS/inc/vos_trace.h
@@ -110,7 +110,7 @@ typedef enum
------------------------------------------------------------------------*/
typedef struct svosTraceRecord
{
- v_U32_t time;
+ v_U64_t time;
v_U8_t module;
v_U8_t code;
v_U8_t session;
diff --git a/CORE/VOSS/src/vos_trace.c b/CORE/VOSS/src/vos_trace.c
index bef18b6ce9cf..3f8057ec64c9 100644
--- a/CORE/VOSS/src/vos_trace.c
+++ b/CORE/VOSS/src/vos_trace.c
@@ -61,7 +61,7 @@
#include <vos_trace.h>
#include <aniGlobal.h>
#include <wlan_logging_sock_svc.h>
-
+#include "adf_os_time.h"
/*--------------------------------------------------------------------------
Preprocessor definitions and constants
------------------------------------------------------------------------*/
@@ -529,7 +529,7 @@ void vos_trace(v_U8_t module, v_U8_t code, v_U8_t session, v_U32_t data)
rec->code = code;
rec->session = session;
rec->data = data;
- rec->time = vos_timer_get_system_time();
+ rec->time = adf_get_boottime();
rec->module = module;
gvosTraceData.numSinceLastDump ++;
spin_unlock_irqrestore(&ltraceLock, flags);