When discussing whether pm_runtime_resume_and_get() should be annotated as
__must_check, I became aware of RPM usage in crypto/stm32.
Following two patches replace usage of pm_runtime_get_sync() with
pm_runtime_resume_and_get() w/o checking the return code.
747bf30fd944 ("crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c")
1cb3ad701970 ("crypto: stm32/hash - Fix PM reference leak on stm32-hash.c")
This results in RPM usage like the following in stm32_hash_export():
pm_runtime_resume_and_get(hdev->dev);
...
pm_runtime_mark_last_busy(hdev->dev);
pm_runtime_put_autosuspend(hdev->dev);
This is broken. After pm_runtime_resume_and_get() the usage count may be
incremented or not. If not, then the call to pm_runtime_put_autosuspend()
results in exactly the imbalance that the patch claims to fix.
Therefore I think both patches should be reverted, or the return code
of pm_runtime_resume_and_get() has to be checked and properly handled
in the driver logic.