Fix imx_intmux_probe lifecycle error path.
Probe enables runtime PM and clock. Failures after clock enable only
disable clock and leak PM runtime reference/enable. Clk cleanup is
incomplete because PM runtime state is left enabled/ref held on later
probe failures.
Balance runtime PM setup on imx-intmux probe failures in
imx_intmux_probe.
Signed-off-by: jiawen <1298662399@qq.com>
---
diff --git a/drivers/irqchip/irq-imx-intmux.c b/drivers/irqchip/irq-imx-intmux.c
--- a/drivers/irqchip/irq-imx-intmux.c
+++ b/drivers/irqchip/irq-imx-intmux.c
@@ -240,6 +240,8 @@
ret = clk_prepare_enable(data->ipg_clk);
if (ret) {
dev_err(&pdev->dev, "failed to enable ipg clk: %d\n", ret);
+ pm_runtime_put_noidle(&pdev->dev);
+ pm_runtime_disable(&pdev->dev);
return ret;
}
@@ -282,6 +284,8 @@
return 0;
out:
clk_disable_unprepare(data->ipg_clk);
+ pm_runtime_put_noidle(&pdev->dev);
+ pm_runtime_disable(&pdev->dev);
return ret;
}
On Tue, Aug 18, 2026 at 05:21:08PM +0400, Jiawen Liu wrote:
> Fix imx_intmux_probe lifecycle error path.
>
> Probe enables runtime PM and clock. Failures after clock enable only
> disable clock and leak PM runtime reference/enable. Clk cleanup is
> incomplete because PM runtime state is left enabled/ref held on later
> probe failures.
>
> Balance runtime PM setup on imx-intmux probe failures in
> imx_intmux_probe.
>
> Signed-off-by: jiawen <1298662399@qq.com>
> ---
> diff --git a/drivers/irqchip/irq-imx-intmux.c b/drivers/irqchip/irq-imx-intmux.c
> --- a/drivers/irqchip/irq-imx-intmux.c
> +++ b/drivers/irqchip/irq-imx-intmux.c
> @@ -240,6 +240,8 @@
> ret = clk_prepare_enable(data->ipg_clk);
> if (ret) {
> dev_err(&pdev->dev, "failed to enable ipg clk: %d\n", ret);
> + pm_runtime_put_noidle(&pdev->dev);
> + pm_runtime_disable(&pdev->dev);
use devm_pm_runtime_enable() to fix this problem.
Frank
> return ret;
> }
>
> @@ -282,6 +284,8 @@
> return 0;
> out:
> clk_disable_unprepare(data->ipg_clk);
> + pm_runtime_put_noidle(&pdev->dev);
> + pm_runtime_disable(&pdev->dev);
> return ret;
> }
>
>
>
© 2016 - 2026 Red Hat, Inc.