summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@qca.qualcomm.com>2015-04-03 09:04:25 -0700
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2015-04-08 16:04:18 +0530
commit913a67cb8cdeda76093a6bfcdeb08a005ba1fad6 (patch)
tree3113a28b0062922e934b34b0c6604468e605107f
parent12c985fe67b392b99058f1ff0c0f963b67ea8a20 (diff)
qcacld: Add panic if MC thread exits prematurely
Following is theory: - MC thread wait_event_interruptible is getting interrupted - Once MC thread is interrupted it exists the execution - MC thread premature exit leads to many side effects like: - VOS wrappers runnign out - Driver unload getting stuck In order to fix the issue: - Add panic if MC thread is interrupted - Once theory is validated fix the real issue by replacing VOS_BUG by continue such that MC thread can try again and process all pending events Change-Id: I6ba35ffd969076543de78153fd317752a691ad1c CRs-Fixed: 817198
-rw-r--r--CORE/VOSS/src/vos_api.c3
-rw-r--r--CORE/VOSS/src/vos_sched.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/CORE/VOSS/src/vos_api.c b/CORE/VOSS/src/vos_api.c
index 621877b86213..2e21135125b0 100644
--- a/CORE/VOSS/src/vos_api.c
+++ b/CORE/VOSS/src/vos_api.c
@@ -1664,7 +1664,8 @@ VOS_STATUS vos_mq_post_message( VOS_MQ_ID msgQueueId, vos_msg_t *pMsg )
if (NULL == pMsgWrapper) {
debug_count = atomic_inc_return(&vos_wrapper_empty_count);
- VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR,
+ if (1 == debug_count)
+ VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR,
"%s: VOS Core run out of message wrapper %d",
__func__, debug_count);
diff --git a/CORE/VOSS/src/vos_sched.c b/CORE/VOSS/src/vos_sched.c
index 055d1ec9f26e..f2b1e45a51b7 100644
--- a/CORE/VOSS/src/vos_sched.c
+++ b/CORE/VOSS/src/vos_sched.c
@@ -821,7 +821,7 @@ VosMCThread
{
VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR,
"%s: wait_event_interruptible returned -ERESTARTSYS", __func__);
- break;
+ VOS_BUG(0);
}
clear_bit(MC_POST_EVENT_MASK, &pSchedContext->mcEventFlag);