Call to pm_runtime_get_sync increments counter even in case of
failure leading to incorrect ref count.
Call pm_runtime_put_noidle if pm_runtime_get_sync fails.
Signed-off-by: Navid Emamdoost <[email protected]>
---
drivers/spi/spi-sprd.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/spi/spi-sprd.c b/drivers/spi/spi-sprd.c
index 6678f1cbc566..860032af4b98 100644
--- a/drivers/spi/spi-sprd.c
+++ b/drivers/spi/spi-sprd.c
@@ -1018,6 +1018,7 @@ static int sprd_spi_remove(struct platform_device *pdev)
ret = pm_runtime_get_sync(ss->dev);
if (ret < 0) {
dev_err(ss->dev, "failed to resume SPI controller\n");
+ pm_runtime_put_noidle(&pdev->dev);
return ret;
}
--
2.17.1
> Call to pm_runtime_get_sync increments counter even in case of
> failure leading to incorrect ref count.
> Call pm_runtime_put_noidle if pm_runtime_get_sync fails.
How do you think about a wording variant like the following?
Change description:
The PM runtime reference counter is generally incremented by a call of
the function “pm_runtime_get_sync”.
Thus call the function “pm_runtime_put_noidle” also in one error case
to keep the reference counting consistent.
Would you like to add the tag “Fixes” to the commit message?
Regards,
Markus
Hi,
On Tue, Jun 2, 2020 at 1:20 PM Navid Emamdoost
<[email protected]> wrote:
>
> Call to pm_runtime_get_sync increments counter even in case of
> failure leading to incorrect ref count.
> Call pm_runtime_put_noidle if pm_runtime_get_sync fails.
>
> Signed-off-by: Navid Emamdoost <[email protected]>
Looks good to me. Thanks
Reviewed-by: Baolin Wang <[email protected]>
> ---
> drivers/spi/spi-sprd.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/spi/spi-sprd.c b/drivers/spi/spi-sprd.c
> index 6678f1cbc566..860032af4b98 100644
> --- a/drivers/spi/spi-sprd.c
> +++ b/drivers/spi/spi-sprd.c
> @@ -1018,6 +1018,7 @@ static int sprd_spi_remove(struct platform_device *pdev)
> ret = pm_runtime_get_sync(ss->dev);
> if (ret < 0) {
> dev_err(ss->dev, "failed to resume SPI controller\n");
> + pm_runtime_put_noidle(&pdev->dev);
> return ret;
> }
>
> --
> 2.17.1
>
--
Baolin Wang