Re: [PATCH] spi: nxp-fspi: Fix runtime PM leak in nxp_fspi_probe()

From: Frank Li

Date: Thu Sep 17 2026 - 19:15:16 EST


On Thu, Sep 17, 2026 at 03:37:13PM +0000, Wentao Liang wrote:
> pm_runtime_get_sync() increments the runtime PM usage counter even when
> it fails. If it returns an error, nxp_fspi_probe() returns without
> dropping that reference, so the counter stays unbalanced.
>
> Balance the counter with pm_runtime_put_noidle() before returning, as
> nxp_fspi_remove() already does.
>
> Fixes: 97be4b919a60 ("spi: spi-nxp-fspi: enable runtime pm for fspi")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
> ---
> drivers/spi/spi-nxp-fspi.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c
> index 1e36ae084dd8..9883e5149dc4 100644
> --- a/drivers/spi/spi-nxp-fspi.c
> +++ b/drivers/spi/spi-nxp-fspi.c
> @@ -1351,8 +1351,10 @@ static int nxp_fspi_probe(struct platform_device *pdev)
>
> /* enable clock */
> ret = pm_runtime_get_sync(f->dev);
> - if (ret < 0)
> + if (ret < 0) {
> + pm_runtime_put_noidle(f->dev);
> return dev_err_probe(dev, ret, "Failed to enable clock");
> + }


use pm_runtime_resume_and_get()

Frank
>
> /* Clear potential interrupts */
> reg = fspi_readl(f, f->iobase + FSPI_INTR);
> --
> 2.34.1
>
>