summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/platform/msm/vidc/msm_vidc_common.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/platform/msm/vidc/msm_vidc_common.c b/drivers/media/platform/msm/vidc/msm_vidc_common.c
index 7da05112cbf6..a2edbb6a8270 100644
--- a/drivers/media/platform/msm/vidc/msm_vidc_common.c
+++ b/drivers/media/platform/msm/vidc/msm_vidc_common.c
@@ -1632,6 +1632,17 @@ static void handle_sys_error(enum hal_command_response cmd, void *data)
return;
}
+ mutex_lock(&core->lock);
+ if (core->state == VIDC_CORE_INVALID ||
+ core->state == VIDC_CORE_UNINIT) {
+ dprintk(VIDC_ERR,
+ "%s: Core already moved to state %d\n",
+ __func__, core->state);
+ mutex_unlock(&core->lock);
+ return;
+ }
+ mutex_unlock(&core->lock);
+
dprintk(VIDC_WARN, "SYS_ERROR %d received for core %pK\n", cmd, core);
msm_comm_clean_notify_client(core);