Messages in this thread Patch in this message | | | From | liguang <> | Subject | [PATCH 2/4] sys: remove kernel_shutdown_prepare's parameter | Date | Thu, 30 May 2013 15:58:04 +0800 |
| |
kernel_shutdown_prepare's parameter can be removed by checking global 'system_state', so, maybe we can save a register to be used :-).
Signed-off-by: liguang <lig.fnst@cn.fujitsu.com> --- kernel/sys.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/kernel/sys.c b/kernel/sys.c index 07c6177..7f56ed4 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -382,11 +382,10 @@ void kernel_restart(char *cmd) } EXPORT_SYMBOL_GPL(kernel_restart); -static void kernel_shutdown_prepare(enum system_states state) +static void kernel_shutdown_prepare(void) { blocking_notifier_call_chain(&reboot_notifier_list, - (state == SYSTEM_HALT)?SYS_HALT:SYS_POWER_OFF, NULL); - system_state = state; + (system_state == SYSTEM_HALT)?SYS_HALT:SYS_POWER_OFF, NULL); usermodehelper_disable(); device_shutdown(); } @@ -397,7 +396,7 @@ static void kernel_shutdown_prepare(enum system_states state) */ void kernel_halt(void) { - kernel_shutdown_prepare(SYSTEM_HALT); + kernel_shutdown_prepare(); disable_nonboot_cpus(); syscore_shutdown(); printk(KERN_EMERG "System halted.\n"); @@ -414,7 +413,7 @@ EXPORT_SYMBOL_GPL(kernel_halt); */ void kernel_power_off(void) { - kernel_shutdown_prepare(SYSTEM_POWER_OFF); + kernel_shutdown_prepare(); if (pm_power_off_prepare) pm_power_off_prepare(); disable_nonboot_cpus(); @@ -484,11 +483,13 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, break; case LINUX_REBOOT_CMD_HALT: + system_state = SYSTEM_HALT; kernel_halt(); do_exit(0); panic("cannot halt"); case LINUX_REBOOT_CMD_POWER_OFF: + system_state = SYSTEM_POWER_OFF; kernel_power_off(); do_exit(0); break; -- 1.7.2.5
| |