crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe()
authorShang XiaoJing <shangxiaojing@huawei.com>
Thu, 24 Nov 2022 06:49:40 +0000 (14:49 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 2 Dec 2022 10:12:40 +0000 (18:12 +0800)
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 <shangxiaojing@huawei.com>
Acked-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/omap-sham.c

index 655a7f5a406a17d80ebb3103acdd0650a111fdec..cbeda59c6b1911e7cd17e7eb180770b32936fc1f 100644 (file)
@@ -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;