diff mbox series

[v6,2/3] media: ti: cal: Fix wrong goto on error path

Message ID 20250324-cal-streams-v6-2-28c93fb8f0c9@ideasonboard.com (mailing list archive)
State New
Headers show
Series media: ti: cal: Add streams support | expand

Commit Message

Tomi Valkeinen March 24, 2025, 9:29 a.m. UTC
If pm_runtime_resume_and_get() fails, we should unprepare the context,
but currently we skip that as we goto to a later line.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 drivers/media/platform/ti/cal/cal-video.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Kieran Bingham March 24, 2025, 9:34 a.m. UTC | #1
Quoting Tomi Valkeinen (2025-03-24 09:29:18)
> If pm_runtime_resume_and_get() fails, we should unprepare the context,
> but currently we skip that as we goto to a later line.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

This looks reasonable and correct to me.


Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> ---
>  drivers/media/platform/ti/cal/cal-video.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/ti/cal/cal-video.c b/drivers/media/platform/ti/cal/cal-video.c
> index 4eb77f46f030..29c38bf8d7a1 100644
> --- a/drivers/media/platform/ti/cal/cal-video.c
> +++ b/drivers/media/platform/ti/cal/cal-video.c
> @@ -744,7 +744,7 @@ static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
>  
>         ret = pm_runtime_resume_and_get(ctx->cal->dev);
>         if (ret < 0)
> -               goto error_pipeline;
> +               goto error_unprepare;
>  
>         cal_ctx_set_dma_addr(ctx, addr);
>         cal_ctx_start(ctx);
> @@ -761,8 +761,8 @@ static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
>  error_stop:
>         cal_ctx_stop(ctx);
>         pm_runtime_put_sync(ctx->cal->dev);
> +error_unprepare:
>         cal_ctx_unprepare(ctx);
> -
>  error_pipeline:
>         video_device_pipeline_stop(&ctx->vdev);
>  error_release_buffers:
> 
> -- 
> 2.43.0
>
diff mbox series

Patch

diff --git a/drivers/media/platform/ti/cal/cal-video.c b/drivers/media/platform/ti/cal/cal-video.c
index 4eb77f46f030..29c38bf8d7a1 100644
--- a/drivers/media/platform/ti/cal/cal-video.c
+++ b/drivers/media/platform/ti/cal/cal-video.c
@@ -744,7 +744,7 @@  static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
 
 	ret = pm_runtime_resume_and_get(ctx->cal->dev);
 	if (ret < 0)
-		goto error_pipeline;
+		goto error_unprepare;
 
 	cal_ctx_set_dma_addr(ctx, addr);
 	cal_ctx_start(ctx);
@@ -761,8 +761,8 @@  static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
 error_stop:
 	cal_ctx_stop(ctx);
 	pm_runtime_put_sync(ctx->cal->dev);
+error_unprepare:
 	cal_ctx_unprepare(ctx);
-
 error_pipeline:
 	video_device_pipeline_stop(&ctx->vdev);
 error_release_buffers: