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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:14:26 +0000 (13:14 +0100)
[ Upstream commit 7bcceb4c9896b1b672b636ae70fe75110d6bf1ad ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/omap-sham.c

index f6bf53c..4ec6949 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;