Message ID | 20200622121548.27882-1-stanimir.varbanov@linaro.org |
---|---|
State | New |
Headers | show |
Series | [v3] venus: fix multiple encoder crash | expand |
Hi, On Mon, Jun 22, 2020 at 5:16 AM Stanimir Varbanov <stanimir.varbanov@linaro.org> wrote: > > From: Mansur Alisha Shaik <mansur@codeaurora.org> > > Currently we are considering the instances which are available > in core->inst list for load calculation in min_loaded_core() > function, but this is incorrect because by the time we call > decide_core() for second instance, the third instance not > filled yet codec_freq_data pointer. > > Solve this by considering the instances whose session has started. > > Cc: stable@vger.kernel.org # v5.7+ > Fixes: 4ebf969375bc ("media: venus: introduce core selection") > Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org> > Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> > --- > > v3: Cc stable and add Fixes tag. > > drivers/media/platform/qcom/venus/pm_helpers.c | 4 ++++ > 1 file changed, 4 insertions(+) The code is the same, so carrying over my tested tag [1]: Tested-by: Douglas Anderson <dianders@chromium.org> [1] https://lore.kernel.org/r/CAD=FV=Vt8je1AtT8id-rPC3JToF_7uGKpC-uDuSpzCkwi3e4Sw@mail.gmail.com/
diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c index abf93158857b..531e7a41658f 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -496,6 +496,10 @@ min_loaded_core(struct venus_inst *inst, u32 *min_coreid, u32 *min_load) list_for_each_entry(inst_pos, &core->instances, list) { if (inst_pos == inst) continue; + + if (inst_pos->state != INST_START) + continue; + vpp_freq = inst_pos->clk_data.codec_freq_data->vpp_freq; coreid = inst_pos->clk_data.core_id;