summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-11-24 06:13:36 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-11-24 06:13:35 -0800
commit4edc6e28992dd1a523721b0b8b391044db71ce98 (patch)
tree8beec32a5db2e4ebe1af8e118efe7d11010be4c7
parent8c41e4e6b1d8d222134eedd9d4c8aabad54e8f06 (diff)
parentb8a19f3eee89afb517db25332b8bfba79b14f966 (diff)
Merge "msm: vidc: fix mutex lock issue"
-rw-r--r--drivers/media/platform/msm/vidc/msm_vidc.c10
-rw-r--r--drivers/media/platform/msm/vidc/msm_vidc_common.c2
2 files changed, 6 insertions, 6 deletions
diff --git a/drivers/media/platform/msm/vidc/msm_vidc.c b/drivers/media/platform/msm/vidc/msm_vidc.c
index c4d06b658b30..7bc1fe1af26d 100644
--- a/drivers/media/platform/msm/vidc/msm_vidc.c
+++ b/drivers/media/platform/msm/vidc/msm_vidc.c
@@ -1320,11 +1320,6 @@ int msm_vidc_destroy(struct msm_vidc_inst *inst)
msm_comm_ctrl_deinit(inst);
- mutex_destroy(&inst->sync_lock);
- mutex_destroy(&inst->bufq[CAPTURE_PORT].lock);
- mutex_destroy(&inst->bufq[OUTPUT_PORT].lock);
- mutex_destroy(&inst->lock);
-
DEINIT_MSM_VIDC_LIST(&inst->pendingq);
DEINIT_MSM_VIDC_LIST(&inst->scratchbufs);
DEINIT_MSM_VIDC_LIST(&inst->persistbufs);
@@ -1338,6 +1333,11 @@ int msm_vidc_destroy(struct msm_vidc_inst *inst)
for (i = 0; i < MAX_PORT_NUM; i++)
vb2_queue_release(&inst->bufq[i].vb2_bufq);
+ mutex_destroy(&inst->sync_lock);
+ mutex_destroy(&inst->bufq[CAPTURE_PORT].lock);
+ mutex_destroy(&inst->bufq[OUTPUT_PORT].lock);
+ mutex_destroy(&inst->lock);
+
pr_info(VIDC_DBG_TAG "Closed video instance: %pK\n",
VIDC_MSG_PRIO2STRING(VIDC_INFO), inst);
kfree(inst);
diff --git a/drivers/media/platform/msm/vidc/msm_vidc_common.c b/drivers/media/platform/msm/vidc/msm_vidc_common.c
index 1c98b44578db..27ee00e0b485 100644
--- a/drivers/media/platform/msm/vidc/msm_vidc_common.c
+++ b/drivers/media/platform/msm/vidc/msm_vidc_common.c
@@ -1666,7 +1666,7 @@ static void handle_sys_error(enum hal_command_response cmd, void *data)
*/
mutex_lock(&core->lock);
- inst = list_first_entry(&core->instances,
+ inst = list_first_entry_or_null(&core->instances,
struct msm_vidc_inst, list);
mutex_unlock(&core->lock);