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

From: Dmitry Osipenko
Date: Thu Jun 16 2022 - 10:59:20 EST


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.

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;
}