diff mbox series

[v3] venus: fix multiple encoder crash

Message ID 20200622121548.27882-1-stanimir.varbanov@linaro.org
State New
Headers show
Series [v3] venus: fix multiple encoder crash | expand

Commit Message

Stanimir Varbanov June 22, 2020, 12:15 p.m. UTC
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(+)

-- 
2.17.1

Comments

Doug Anderson June 22, 2020, 8:28 p.m. UTC | #1
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 mbox series

Patch

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;