On Tue, 27 Oct 2009, Dasgupta, Romit wrote: > Hi, > I get the following errors when I choose devices in /sys/power/pm_test. It also shows that if 'dpm_suspend_start' fails somewhere down the line then the kernel does not reset the 'transition_started' variable and we can get warning similar to below. IMHO 'dpm_resume_noirq' is not the right place for setting this variable. Please see the patch below which fixes the issue. > Fixes the location where we decide that our power transition is complete. > Signed-off-by: Romit Dasgupta <romit@xxxxxx> > --- > diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c > index e0dc407..6b9e991 100644 > --- a/drivers/base/power/main.c > +++ b/drivers/base/power/main.c > @@ -365,7 +365,6 @@ void dpm_resume_noirq(pm_message_t state) > struct device *dev; > > mutex_lock(&dpm_list_mtx); > - transition_started = false; > list_for_each_entry(dev, &dpm_list, power.entry) > if (dev->power.status > DPM_OFF) { > int error; > @@ -529,6 +528,7 @@ static void dpm_complete(pm_message_t state) > put_device(dev); > } > list_splice(&list, &dpm_list); > + transition_started = false; > mutex_unlock(&dpm_list_mtx); > } The second hunk is okay, but the first hunk isn't. We want to set transition_started to false as soon as devices start resuming, because once a resume has begun it's okay to add new devices. Alan Stern _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm