Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc6897b4 authored by Yiming Cao's avatar Yiming Cao Committed by Gerrit - the friendly Code Review server
Browse files

msm: vidc: Fix accessing invalid instance



The instance got from the list may possibly be closed before
printing its info.

Change-Id: I7fdad3025cebace951a073cb52153d032533bd73
Signed-off-by: default avatarYiming Cao <cyiming@codeaurora.org>
parent c7a3fb0e
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -2614,6 +2614,7 @@ int msm_comm_check_core_init(struct msm_vidc_core *core)
	int rc = 0;
	struct hfi_device *hdev;
	struct msm_vidc_inst *inst = NULL;
	int dref = 0;

	mutex_lock(&core->lock);
	if (core->state >= VIDC_CORE_INIT_DONE) {
@@ -2637,11 +2638,16 @@ int msm_comm_check_core_init(struct msm_vidc_core *core)
		 * Just grab one of the inst from instances list and
		 * use it.
		 */
		inst = list_first_entry(&core->instances,
		inst = list_first_entry_or_null(&core->instances,
			struct msm_vidc_inst, list);
		if (inst)
			dref = kref_get_unless_zero(&inst->kref);

		mutex_unlock(&core->lock);
		if (dref) {
			msm_comm_print_debug_info(inst);
			put_inst(inst);
		}
		mutex_lock(&core->lock);

		BUG_ON(msm_vidc_debug_timeout);