]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Jun 2025 10:05:29 +0000 (11:05 +0100)
[ Upstream commit a5b18fd769b7dc2e77a9e6a390844cbf50626ae8 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/ti-vpe/cal-video.c

index d87177d04e921a0433a4bf615a8e92525e8ff762..2e93c1b8f3597b7d0a56ce7f7570ed680328fb4f 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:
        media_pipeline_stop(&ctx->vdev.entity);
 error_release_buffers: