]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 May 2021 07:44:21 +0000 (09:44 +0200)
[ Upstream commit a03675497970a93fcf25d81d9d92a59c2d7377a7 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-fsl-lpspi.c

index ecb4396707cfc0fdfafb8302aa2b5efcf85d4e5a..58b2da91be1c02ccacc91e95e1e10d88a9463e0e 100644 (file)
@@ -207,7 +207,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;