diff options
author | Dmitry Osipenko <dmitry.osipenko@collabora.com> | 2022-05-10 01:32:13 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2022-05-19 19:30:30 +0200 |
commit | 2b6aa7332f8020dfdaffe340ff038aac4df35238 (patch) | |
tree | 7a9b30b1547ca8db4f0d1493b12c0e72c3eae649 /kernel/reboot.c | |
parent | kernel/reboot: Wrap legacy power-off callbacks into sys-off handlers (diff) | |
download | linux-2b6aa7332f8020dfdaffe340ff038aac4df35238.tar.xz linux-2b6aa7332f8020dfdaffe340ff038aac4df35238.zip |
kernel/reboot: Add do_kernel_power_off()
Add do_kernel_power_off() helper that will remove open-coded pm_power_off
invocations from the architecture code. This is the first step on the way
to remove the global pm_power_off variable, which will allow us to
implement consistent power-off chaining support.
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'kernel/reboot.c')
-rw-r--r-- | kernel/reboot.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/reboot.c b/kernel/reboot.c index 96f681f7b20c..892d25aa12df 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -505,6 +505,19 @@ static void do_kernel_power_off_prepare(void) } /** + * do_kernel_power_off - Execute kernel power-off handler call chain + * + * Expected to be called as last step of the power-off sequence. + * + * Powers off the system immediately if a power-off handler function has + * been registered. Otherwise does nothing. + */ +void do_kernel_power_off(void) +{ + atomic_notifier_call_chain(&power_off_handler_list, 0, NULL); +} + +/** * kernel_power_off - power_off the system * * Shutdown everything and perform a clean system power_off. |