Re: [PATCH RFC] PM: sleep: Return -ECANCELED if aborting due to pm_wakeup_pending()
From: F. R. A. Prado
Date: Tue Jul 21 2026 - 16:36:22 EST
On Tue, 2026-06-09 at 08:48 -0400, Nícolas F. R. A. Prado wrote:
> If system sleep (suspend or hibernate) has been aborted due to
> pm_wakeup_pending() returning true, return -ECANCELED so userspace
> can
> tell it apart from actual failures.
>
> ECANCELED is chosen both because it is a less common error code, so
> it is less likely to be used for purposes other than the sleep abort
> due
> to pending wakeups in this code path, and also because it more
> clearly
> represents that the sleep was intentionally canceled.
>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxx>
> ---
> To give more context on my specific use case:
>
> I want to address the situation where the system is running systemd's
> suspend-then-hibernate and while going into hibernation, the user
> triggers a wakeup (by pressing the power button). The expectation is
> that the system would abort suspend-then-hibernate and wakeup, but
> instead it considers that as a hibernation failure and falls back to
> suspend instead. The key thing here is that systemd isn't able to
> tell
> that this hibernation failure is not really a failure but an
> intentional
> abort, which is where the consistent error code for
> pm_wakeup_pending()
> can solve the problem.
>
> Sending as an RFC as this is changing an ABI and although I'm not
> aware
> of userspace that relies on the current error codes, it would be good
> to
> get more input on this.
Hi,
Any feedback on this RFC?
--
Thanks,
Nícolas