From f604d813cb020d470d1a34e3a2e0c3ea5810cf9f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 21 Dec 2023 17:59:15 +0000 Subject: [PATCH 0812/1085] media: rp1: cfe: Fix error paths in cfe_start_streaming Noted that if we get "node link is not enabled", then we also get the videobuf2 splat for the driver not cleaning up correctly on a failed start_streaming, and indeed we weren't returning the buffers. Checking the other error paths, noted that the "FE enabled, but FE_CONFIG node is not" path was not calling pm_runtime_put. Fix both paths. Signed-off-by: Dave Stevenson --- drivers/media/platform/raspberrypi/rp1_cfe/cfe.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/drivers/media/platform/raspberrypi/rp1_cfe/cfe.c +++ b/drivers/media/platform/raspberrypi/rp1_cfe/cfe.c @@ -1112,7 +1112,8 @@ static int cfe_start_streaming(struct vb if (!check_state(cfe, NODE_ENABLED, node->id)) { cfe_err("%s node link is not enabled.\n", node_desc[node->id].name); - return -EINVAL; + ret = -EINVAL; + goto err_streaming; } ret = pm_runtime_resume_and_get(&cfe->pdev->dev); @@ -1126,7 +1127,7 @@ static int cfe_start_streaming(struct vb !check_state(cfe, NODE_ENABLED, cfe->node[FE_CONFIG].id)) { cfe_err("FE enabled, but FE_CONFIG node is not\n"); ret = -EINVAL; - goto err_streaming; + goto err_pm_put; } ret = media_pipeline_start(&node->pad, &cfe->pipe);