[PATCH] accel/amdxdna: fix usage_count leak when autosuspend_delay is negative

Guangshuo Li <[email protected]>
Newsgroups org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
amdxdna_pm_init() calls pm_runtime_use_autosuspend(), but
amdxdna_pm_fini() does not call the matching
pm_runtime_dont_use_autosuspend() when tearing down runtime PM.

If autosuspend_delay is set to a negative value while autosuspend is
enabled, the runtime PM core increments usage_count to prevent runtime
suspend. Without calling pm_runtime_dont_use_autosuspend() during
driver teardown, this reference is not dropped and usage_count remains
unbalanced.

Add the missing pm_runtime_dont_use_autosuspend() call in
amdxdna_pm_fini() before restoring the runtime PM usage reference and
forbidding runtime PM.

This issue was found by manual code inspection.

Fixes: 063db451832b ("accel/amdxdna: Enhance runtime power management")
Signed-off-by: Guangshuo Li <[email protected]>
---
 drivers/accel/amdxdna/amdxdna_pm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/accel/amdxdna/amdxdna_pm.c b/drivers/accel/amdxdna/amdxdna_pm.c
index b1fafddd7ad5..7dcedb7c105f 100644
--- a/drivers/accel/amdxdna/amdxdna_pm.c
+++ b/drivers/accel/amdxdna/amdxdna_pm.c
@@ -73,6 +73,7 @@ void amdxdna_pm_fini(struct amdxdna_dev *xdna)
 {
 	struct device *dev = xdna->ddev.dev;
 
+	pm_runtime_dont_use_autosuspend(dev);
 	pm_runtime_get_noresume(dev);
 	pm_runtime_forbid(dev);
 }
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.