summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2026-03-28 15:14:52 +0000
committerHans Verkuil <hverkuil+cisco@kernel.org>2026-05-19 09:01:50 +0200
commita1db83cc6f7e88a166c77d9060507ec01d617784 (patch)
tree91dd508d76dd2898f1d974e459ccdd99ad82ea1e
parent2c9b9bcc2569f52e366ec71ca012542e161f1f8d (diff)
media: mali-c55: Disable pm_runtime on probe error
When mali_c55_media_frameworks_init() fails, the goto target jumps to err_free_context_registers, skipping pm_runtime_disable() despite pm_runtime having already been enabled earlier in the function. Fix this by adding an err_pm_runtime_disable label and redirecting the frameworks init failure to it, so pm_runtime is properly unwound on that error path. The runtime PM status is also set back to suspended before disabling, to undo the pm_runtime_set_active() from probe. Cc: stable@vger.kernel.org Fixes: d5f281f3dd29 ("media: mali-c55: Add Mali-C55 ISP driver") Signed-off-by: David Carlier <devnexen@gmail.com> Reviewed-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
-rw-r--r--drivers/media/platform/arm/mali-c55/mali-c55-core.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/platform/arm/mali-c55/mali-c55-core.c b/drivers/media/platform/arm/mali-c55/mali-c55-core.c
index 00aed62c63d9..ee4a4267415e 100644
--- a/drivers/media/platform/arm/mali-c55/mali-c55-core.c
+++ b/drivers/media/platform/arm/mali-c55/mali-c55-core.c
@@ -828,7 +828,7 @@ static int mali_c55_probe(struct platform_device *pdev)
ret = mali_c55_media_frameworks_init(mali_c55);
if (ret)
- goto err_free_context_registers;
+ goto err_pm_runtime_disable;
pm_runtime_idle(&pdev->dev);
@@ -842,8 +842,9 @@ static int mali_c55_probe(struct platform_device *pdev)
err_deinit_media_frameworks:
mali_c55_media_frameworks_deinit(mali_c55);
+err_pm_runtime_disable:
+ pm_runtime_set_suspended(&pdev->dev);
pm_runtime_disable(&pdev->dev);
-err_free_context_registers:
kfree(mali_c55->context.registers);
err_power_off:
__mali_c55_power_off(mali_c55);