Re: regression, 5.19.0-rc1 not powering off when hibernated

From: Ken Moffat
Date: Thu Jun 16 2022 - 13:06:20 EST


On Thu, Jun 16, 2022 at 05:59:10PM +0300, Dmitry Osipenko wrote:
> Hi,
>
> On 6/15/22 22:52, Ken Moffat wrote:
> > On Wed, Jun 15, 2022 at 05:40:46PM +0100, Ken Moffat wrote:
> >> On Mon, Jun 13, 2022 at 08:46:22PM +0100, Ken Moffat wrote:
> >>
> >>>>>> But with 5.19.0-rc1 the screen is blank throughtout the hibernation,
> >>>>>> and briefly when restoring (no complaint about that), but when
> >>>>>> hibernating it no longer powers off and I have to hold the on/off
> >>>>>> switch to power off.
> >>>>>>
> >>>>>> Is this a known problem ?
> >>>>>
> > [...]
> >> Indeed, on the second attempt I've got a much more likely commit to
> >> blame:
> >>
> >> 98f30d0ecf79da8cf17a171fa4cf6eda7ba4dd71 is the first bad commit
> >> commit 98f30d0ecf79da8cf17a171fa4cf6eda7ba4dd71
> >> Author: Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx>
> >> Date: Tue May 10 02:32:30 2022 +0300
> >>
> >> ACPI: power: Switch to sys-off handler API
> >>
> >> Switch to sys-off API that replaces legacy pm_power_off callbacks,
> >> allowing us to remove global pm_* variables and support chaining of
> >> all restart and power-off modes consistently.
> >>
> >> Signed-off-by: Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx>
> >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> >>
> >> Unsurprisingly, with this reverted 5.19-rc2 fails to build.
> >>
> > It occurs to me that maybe I'm missing something in my .config.
> > Since that is 117K, here is the gzipped config from the version that
> > git blamed (apart from not powering off, it appears to work ok).
>
> The patch below likely should fix the problem, please give it a try on
> top of the 5.19-rc2.

Thanks, works like a charm.

Feel free to add

Reported-by: Ken Moffat <zarniwhhop@xxxxxxxxxxxx>
Tested-by: Ken Moffat <zarniwhoop@xxxxxxxxxxxx>

if you wish.

Cheers,

ĸen
>
> diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
> index 20a66bf9f465..89c71fce225d 100644
> --- a/kernel/power/hibernate.c
> +++ b/kernel/power/hibernate.c
> @@ -665,7 +665,7 @@ static void power_down(void)
> hibernation_platform_enter();
> fallthrough;
> case HIBERNATION_SHUTDOWN:
> - if (pm_power_off)
> + if (kernel_can_power_off())
> kernel_power_off();
> break;
> }

--
"Happiness isn't happiness without a violin-playing goat."
-- Notting Hill