|
Takashi Iwai |
d16f44 |
From a03675497970a93fcf25d81d9d92a59c2d7377a7 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
d16f44 |
From: Wang Li <wangli74@huawei.com>
|
|
Takashi Iwai |
d16f44 |
Date: Fri, 9 Apr 2021 09:54:30 +0000
|
|
Takashi Iwai |
d16f44 |
Subject: [PATCH] spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware()
|
|
Takashi Iwai |
d16f44 |
Git-commit: a03675497970a93fcf25d81d9d92a59c2d7377a7
|
|
Takashi Iwai |
d16f44 |
Patch-mainline: v5.13-rc1
|
|
Takashi Iwai |
d16f44 |
References: git-fixes
|
|
Takashi Iwai |
d16f44 |
|
|
Takashi Iwai |
d16f44 |
pm_runtime_get_sync will increment pm usage counter even it failed.
|
|
Takashi Iwai |
d16f44 |
Forgetting to putting operation will result in reference leak here.
|
|
Takashi Iwai |
d16f44 |
Fix it by replacing it with pm_runtime_resume_and_get to keep usage
|
|
Takashi Iwai |
d16f44 |
counter balanced.
|
|
Takashi Iwai |
d16f44 |
|
|
Takashi Iwai |
d16f44 |
Fixes: 944c01a889d9 ("spi: lpspi: enable runtime pm for lpspi")
|
|
Takashi Iwai |
d16f44 |
Reported-by: Hulk Robot <hulkci@huawei.com>
|
|
Takashi Iwai |
d16f44 |
Signed-off-by: Wang Li <wangli74@huawei.com>
|
|
Takashi Iwai |
d16f44 |
Link: https://lore.kernel.org/r/20210409095430.29868-1-wangli74@huawei.com
|
|
Takashi Iwai |
d16f44 |
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Takashi Iwai |
d16f44 |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
d16f44 |
|
|
Takashi Iwai |
d16f44 |
---
|
|
Takashi Iwai |
d16f44 |
drivers/spi/spi-fsl-lpspi.c | 2 +-
|
|
Takashi Iwai |
d16f44 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Takashi Iwai |
d16f44 |
|
|
Takashi Iwai |
d16f44 |
diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
|
|
Takashi Iwai |
d16f44 |
index a2886ee44e4c..5d98611dd999 100644
|
|
Takashi Iwai |
d16f44 |
--- a/drivers/spi/spi-fsl-lpspi.c
|
|
Takashi Iwai |
d16f44 |
+++ b/drivers/spi/spi-fsl-lpspi.c
|
|
Takashi Iwai |
d16f44 |
@@ -200,7 +200,7 @@ static int lpspi_prepare_xfer_hardware(struct spi_controller *controller)
|
|
Takashi Iwai |
d16f44 |
spi_controller_get_devdata(controller);
|
|
Takashi Iwai |
d16f44 |
int ret;
|
|
Takashi Iwai |
d16f44 |
|
|
Takashi Iwai |
d16f44 |
- ret = pm_runtime_get_sync(fsl_lpspi->dev);
|
|
Takashi Iwai |
d16f44 |
+ ret = pm_runtime_resume_and_get(fsl_lpspi->dev);
|
|
Takashi Iwai |
d16f44 |
if (ret < 0) {
|
|
Takashi Iwai |
d16f44 |
dev_err(fsl_lpspi->dev, "failed to enable clock\n");
|
|
Takashi Iwai |
d16f44 |
return ret;
|
|
Takashi Iwai |
d16f44 |
--
|
|
Takashi Iwai |
d16f44 |
2.26.2
|
|
Takashi Iwai |
d16f44 |
|