On Mon Dec 29 12:01:23 2025 +0530, Dikshita Agarwal wrote:
> This reverts commit ad699fa78b59241c9d71a8cafb51525f3dab04d4.
> 
> Revert the check that skipped stop_streaming when the instance was in
> IRIS_INST_ERROR, as it caused multiple regressions:
> 
> 1. Buffers were not returned to vb2 when the instance was already in
>    error state, triggering warnings in the vb2 core because buffer
>    completion was skipped.
> 
> 2. If a session failed early (e.g. unsupported configuration), the
>    instance transitioned to IRIS_INST_ERROR. When userspace attempted
>    to stop streaming for cleanup, stop_streaming was skipped due to the
>    added check, preventing proper teardown and leaving the firmware
>    in an inconsistent state.
> 
> Fixes: ad699fa78b59 ("media: iris: Add sanity check for stop streaming")
> Signed-off-by: Dikshita Agarwal <[email protected]>
> Reviewed-by: Vikash Garodia <[email protected]>
> Cc: [email protected]
> Signed-off-by: Bryan O'Donoghue <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/platform/qcom/iris/iris_vb2.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

---

diff --git a/drivers/media/platform/qcom/iris/iris_vb2.c 
b/drivers/media/platform/qcom/iris/iris_vb2.c
index db8768d8a8f6..139b821f7952 100644
--- a/drivers/media/platform/qcom/iris/iris_vb2.c
+++ b/drivers/media/platform/qcom/iris/iris_vb2.c
@@ -231,8 +231,6 @@ void iris_vb2_stop_streaming(struct vb2_queue *q)
                return;
 
        mutex_lock(&inst->lock);
-       if (inst->state == IRIS_INST_ERROR)
-               goto exit;
 
        if (!V4L2_TYPE_IS_OUTPUT(q->type) &&
            !V4L2_TYPE_IS_CAPTURE(q->type))
@@ -243,10 +241,10 @@ void iris_vb2_stop_streaming(struct vb2_queue *q)
                goto exit;
 
 exit:
-       if (ret) {
-               iris_helper_buffers_done(inst, q->type, VB2_BUF_STATE_ERROR);
+       iris_helper_buffers_done(inst, q->type, VB2_BUF_STATE_ERROR);
+       if (ret)
                iris_inst_change_state(inst, IRIS_INST_ERROR);
-       }
+
        mutex_unlock(&inst->lock);
 }
 
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to