On Tue, Jun 3, 2025 at 2:27 PM Chris Bainbridge
<chris.bainbri...@gmail.com> wrote:
>
> On Tue, 3 Jun 2025 at 13:24, Rafael J. Wysocki <raf...@kernel.org> wrote:
> > >
> > > This patch does fix the list corruption, but the "Unbalanced
> > > pm_runtime_enable" still occurs:
> >
> > Have you applied it together with the previous patch?
>
> Yes

So it looks like some devices have power.is_suspended set from the
previous cycle which causes device_resume() to attempt to resume them
even though they have not been suspended in the current cycle yet.

Please try the attached patch in addition to the previous 2 patches.

Thanks!
---
 drivers/base/power/main.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -992,6 +992,8 @@
 	if (!dev->power.is_suspended)
 		goto Complete;
 
+	dev->power.is_suspended = false;
+
 	if (dev->power.direct_complete) {
 		/*
 		 * Allow new children to be added under the device after this
@@ -1054,7 +1056,6 @@
 
  End:
 	error = dpm_run_callback(callback, dev, state, info);
-	dev->power.is_suspended = false;
 
 	device_unlock(dev);
 	dpm_watchdog_clear(&wd);

Reply via email to