Message ID | 20211126180101.27818-19-digetx@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Introduce power-off+restart call chain API | expand |
On Fri, Nov 26, 2021 at 09:00:54PM +0300, Dmitry Osipenko wrote: > Kernel now supports chained power-off handlers. Use do_kernel_power_off() > that invokes chained power-off handlers. It also invokes legacy > pm_power_off() for now, which will be removed once all drivers will > be converted to the new power-off API. > > Signed-off-by: Dmitry Osipenko <digetx@gmail.com> > --- > arch/x86/kernel/reboot.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c > index 0a40df66a40d..cd7d9416d81a 100644 > --- a/arch/x86/kernel/reboot.c > +++ b/arch/x86/kernel/reboot.c > @@ -747,10 +747,10 @@ static void native_machine_halt(void) > > static void native_machine_power_off(void) > { > - if (pm_power_off) { > + if (kernel_can_power_off()) { > if (!reboot_force) > machine_shutdown(); > - pm_power_off(); > + do_kernel_power_off(); > } Judging from an old commit from 2006 [1], this can be rewritten as: if (!reboot_force && kernel_can_power_off()) machine_shutdown(); do_kernel_power_off(); And maybe later reworked so it doesn't need kernel_can_power_off(). [1] http://lkml.iu.edu/hypermail//linux/kernel/0511.3/0681.html Best Regards Michał Mirosław
28.11.2021 04:15, Michał Mirosław пишет: > On Fri, Nov 26, 2021 at 09:00:54PM +0300, Dmitry Osipenko wrote: >> Kernel now supports chained power-off handlers. Use do_kernel_power_off() >> that invokes chained power-off handlers. It also invokes legacy >> pm_power_off() for now, which will be removed once all drivers will >> be converted to the new power-off API. >> >> Signed-off-by: Dmitry Osipenko <digetx@gmail.com> >> --- >> arch/x86/kernel/reboot.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c >> index 0a40df66a40d..cd7d9416d81a 100644 >> --- a/arch/x86/kernel/reboot.c >> +++ b/arch/x86/kernel/reboot.c >> @@ -747,10 +747,10 @@ static void native_machine_halt(void) >> >> static void native_machine_power_off(void) >> { >> - if (pm_power_off) { >> + if (kernel_can_power_off()) { >> if (!reboot_force) >> machine_shutdown(); >> - pm_power_off(); >> + do_kernel_power_off(); >> } > > Judging from an old commit from 2006 [1], this can be rewritten as: > > if (!reboot_force && kernel_can_power_off()) > machine_shutdown(); > do_kernel_power_off(); > > And maybe later reworked so it doesn't need kernel_can_power_off(). > > [1] http://lkml.iu.edu/hypermail//linux/kernel/0511.3/0681.html It could be rewritten like you're suggesting, but I'd prefer to keep the old variant, for clarity.
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 0a40df66a40d..cd7d9416d81a 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c @@ -747,10 +747,10 @@ static void native_machine_halt(void) static void native_machine_power_off(void) { - if (pm_power_off) { + if (kernel_can_power_off()) { if (!reboot_force) machine_shutdown(); - pm_power_off(); + do_kernel_power_off(); } /* A fallback in case there is no PM info available */ tboot_shutdown(TB_SHUTDOWN_HALT);
Kernel now supports chained power-off handlers. Use do_kernel_power_off() that invokes chained power-off handlers. It also invokes legacy pm_power_off() for now, which will be removed once all drivers will be converted to the new power-off API. Signed-off-by: Dmitry Osipenko <digetx@gmail.com> --- arch/x86/kernel/reboot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)