From 734e44bed3c3ba5c57a0e5ee1c9de33bb5151c8f Mon Sep 17 00:00:00 2001 From: George Shen Date: Wed, 30 Sep 2020 22:23:57 -0700 Subject: [PATCH] msm: cvp: Avoid racing in session deletion and use Avoid a deleted session being used for power update. Change-Id: I44a6ea0a4c0dda499bc6adac94b2edafdeeab82c Signed-off-by: George Shen --- drivers/media/platform/msm/cvp/msm_cvp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/media/platform/msm/cvp/msm_cvp.c b/drivers/media/platform/msm/cvp/msm_cvp.c index 9f2b65604edd..2dbb51ad7c6e 100644 --- a/drivers/media/platform/msm/cvp/msm_cvp.c +++ b/drivers/media/platform/msm/cvp/msm_cvp.c @@ -754,6 +754,7 @@ static void aggregate_power_update(struct msm_cvp_core *core, unsigned long op_mpu_max[2] = {0}, op_ica_max[2] = {0}; unsigned long op_fw_max[2] = {0}, bw_sum[2] = {0}, op_bw_max[2] = {0}; + mutex_lock(&core->lock); list_for_each_entry(inst, &core->instances, list) { if (inst->state == MSM_CVP_CORE_INVALID || inst->state == MSM_CVP_CORE_UNINIT || @@ -824,6 +825,8 @@ static void aggregate_power_update(struct msm_cvp_core *core, core->dyn_clk.sum_fps[HFI_HW_ICA]); } + mutex_unlock(&core->lock); + for (i = 0; i < 2; i++) { fdu_sum[i] = max_3(fdu_sum[i], od_sum[i], mpu_sum[i]); fdu_sum[i] = max_3(fdu_sum[i], ica_sum[i], fw_sum[i]);