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 <shangxiaojing@xxxxxxxxxx> > --- > 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 <mgreer@xxxxxxxxxxxxxxx>