Re: [PATCH] PM: Prevent dpm_prepare() from returning errors unnecessarily

Rafael J. Wysocki
2010-11-28T22:53:17Z

On Sunday, November 28, 2010, Alan Stern wrote:
> On Sun, 28 Nov 2010, Rafael J. Wysocki wrote:
>
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > Currently dpm_prepare() returns error code if it finds that a device
> > being suspended has a pending runtime resume request. However, it
> > should not do that if the checking for wakeup events is not enabled.
>
> It doesn't. The line you changed _does_ check device_may_wakeup().

That's not the point. The problem is that it shouldn't abort suspend
when events_check_enabled is unset.

> > On the other hand, if the checking for wakeup events is enabled, it
> > can return error when a wakeup event is detected, regardless of its
> > source.
>
> Will adding this call to pm_wakeup_event() end up double-counting some
> events?

Yes, it will, if the event has already been reported by the subsystem or driver.

I don't think it's a very big issue and I'm not sure trying to avoid it is
worth the effort (we can check if the device's wakeup source object is active
and skip reporting the wakeup event in that case, but that doesn't guarantee
that the event won't be counted twice anyway).

Thanks,
Rafael