]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: ti: cal: Fix wrong goto on error path
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Wed, 26 Mar 2025 11:34:02 +0000 (13:34 +0200)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 25 Apr 2025 08:15:24 +0000 (10:15 +0200)
If pm_runtime_resume_and_get() fails, we should unprepare the context,
but currently we skip that as we goto to a later line.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/platform/ti/cal/cal-video.c

index 4eb77f46f0304762550f2266b9868f3dacb1263d..29c38bf8d7a1a83ed9989f3d7e3df3009ba0ca7f 100644 (file)
@@ -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: