2022-11-24 06:56:49

by Shang XiaoJing

[permalink] [raw]
Subject: [PATCH] crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe()

omap_sham_probe() calls pm_runtime_get_sync() and calls
pm_runtime_put_sync() latter to put usage_counter. However,
pm_runtime_get_sync() will increment usage_counter even it failed. Fix
it by replacing it with pm_runtime_resume_and_get() to keep usage
counter balanced.

Fixes: b359f034c8bf ("crypto: omap-sham - Convert to use pm_runtime API")
Signed-off-by: Shang XiaoJing <[email protected]>
---
drivers/crypto/omap-sham.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
index 655a7f5a406a..cbeda59c6b19 100644
--- a/drivers/crypto/omap-sham.c
+++ b/drivers/crypto/omap-sham.c
@@ -2114,7 +2114,7 @@ static int omap_sham_probe(struct platform_device *pdev)

pm_runtime_enable(dev);

- err = pm_runtime_get_sync(dev);
+ err = pm_runtime_resume_and_get(dev);
if (err < 0) {
dev_err(dev, "failed to get sync: %d\n", err);
goto err_pm;
--
2.17.1


2022-11-28 21:30:54

by Mark Greer

[permalink] [raw]
Subject: Re: [PATCH] crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe()

On Thu, Nov 24, 2022 at 02:49:40PM +0800, Shang XiaoJing wrote:
> omap_sham_probe() calls pm_runtime_get_sync() and calls
> pm_runtime_put_sync() latter to put usage_counter. However,
> pm_runtime_get_sync() will increment usage_counter even it failed. Fix
> it by replacing it with pm_runtime_resume_and_get() to keep usage
> counter balanced.
>
> Fixes: b359f034c8bf ("crypto: omap-sham - Convert to use pm_runtime API")
> Signed-off-by: Shang XiaoJing <[email protected]>
> ---
> drivers/crypto/omap-sham.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
> index 655a7f5a406a..cbeda59c6b19 100644
> --- a/drivers/crypto/omap-sham.c
> +++ b/drivers/crypto/omap-sham.c
> @@ -2114,7 +2114,7 @@ static int omap_sham_probe(struct platform_device *pdev)
>
> pm_runtime_enable(dev);
>
> - err = pm_runtime_get_sync(dev);
> + err = pm_runtime_resume_and_get(dev);
> if (err < 0) {
> dev_err(dev, "failed to get sync: %d\n", err);
> goto err_pm;

I do not have the hardware to test this anymore but to the best of my
knowledge, this is a good change. Thanks Shang.

Acked-by: Mark Greer <[email protected]>

2022-12-02 10:23:17

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe()

On Thu, Nov 24, 2022 at 02:49:40PM +0800, Shang XiaoJing wrote:
> omap_sham_probe() calls pm_runtime_get_sync() and calls
> pm_runtime_put_sync() latter to put usage_counter. However,
> pm_runtime_get_sync() will increment usage_counter even it failed. Fix
> it by replacing it with pm_runtime_resume_and_get() to keep usage
> counter balanced.
>
> Fixes: b359f034c8bf ("crypto: omap-sham - Convert to use pm_runtime API")
> Signed-off-by: Shang XiaoJing <[email protected]>
> ---
> drivers/crypto/omap-sham.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Patch applied. Thanks.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt