spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware()
authorWang Li <wangli74@huawei.com>
Fri, 9 Apr 2021 09:54:30 +0000 (09:54 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 9 Apr 2021 12:43:59 +0000 (13:43 +0100)
pm_runtime_get_sync will increment pm usage counter even it failed.
Forgetting to putting operation will result in reference leak here.
Fix it by replacing it with pm_runtime_resume_and_get to keep usage
counter balanced.

Fixes: 944c01a889d9 ("spi: lpspi: enable runtime pm for lpspi")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wang Li <wangli74@huawei.com>
Link: https://lore.kernel.org/r/20210409095430.29868-1-wangli74@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-fsl-lpspi.c

index a2886ee44e4cb38569ab917248f3b8f53f86fb87..5d98611dd999d19b0cd10facd8501e05c8090944 100644 (file)
@@ -200,7 +200,7 @@ static int lpspi_prepare_xfer_hardware(struct spi_controller *controller)
                                spi_controller_get_devdata(controller);
        int ret;
 
-       ret = pm_runtime_get_sync(fsl_lpspi->dev);
+       ret = pm_runtime_resume_and_get(fsl_lpspi->dev);
        if (ret < 0) {
                dev_err(fsl_lpspi->dev, "failed to enable clock\n");
                return ret;