On Tue Aug 4 23:11:04 2026 +0900, Myeonghun Pak wrote:
> Runtime PM is enabled before the IRQ is looked up. If that lookup
> fails, probe returns without disabling runtime PM. The subdevice
> initialization error path disables runtime PM but leaves autosuspend
> enabled, while the remove path does neither.
>
> Use devm_pm_runtime_enable() so the driver core disables autosuspend and
> runtime PM on every failed probe and after remove. This also makes the
> manual subdevice error unwind unnecessary.
>
> This issue was identified during our ongoing static-analysis research while
> reviewing kernel code.
>
> Fixes: f0b3984d821b ("media: platform: Add Renesas Input Video Control block
> driver")
> Cc: [email protected]
> Signed-off-by: Ijae Kim <[email protected]>
> Signed-off-by: Myeonghun Pak <[email protected]>
> Reviewed-by: Jacopo Mondi <[email protected]>
> Signed-off-by: Jacopo Mondi <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>
Patch committed.
Thanks,
Hans Verkuil
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-dev.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
---
diff --git a/drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-dev.c
b/drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-dev.c
index 355842abb24b..48f9fd818bff 100644
--- a/drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-dev.c
+++ b/drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-dev.c
@@ -202,7 +202,9 @@ static int rzv2h_ivc_probe(struct platform_device *pdev)
pm_runtime_set_autosuspend_delay(dev, 2000);
pm_runtime_use_autosuspend(dev);
- pm_runtime_enable(dev);
+ ret = devm_pm_runtime_enable(dev);
+ if (ret)
+ return ret;
ivc->irqnum = platform_get_irq(pdev, 0);
if (ivc->irqnum < 0)
@@ -210,14 +212,9 @@ static int rzv2h_ivc_probe(struct platform_device *pdev)
ret = rzv2h_ivc_initialise_subdevice(ivc);
if (ret)
- goto err_disable_pm_runtime;
+ return ret;
return 0;
-
-err_disable_pm_runtime:
- pm_runtime_disable(dev);
-
- return ret;
}
static void rzv2h_ivc_remove(struct platform_device *pdev)
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]