diff options
| author | Huang Ying <ying.huang@intel.com> | 2008-08-15 00:40:24 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-08-15 08:35:42 -0700 | 
| commit | ca195b7f6da3d5dde0bb85a7c322d7de73352653 (patch) | |
| tree | 1f8a31634ddc2bd4ba8a5fc081b39babab62323b | |
| parent | fb45daa69d287b394eca1619b3fadff7c0215c71 (diff) | |
| download | olio-linux-3.10-ca195b7f6da3d5dde0bb85a7c322d7de73352653.tar.xz olio-linux-3.10-ca195b7f6da3d5dde0bb85a7c322d7de73352653.zip  | |
kexec jump: remove duplication of kexec_restart_prepare()
Call kernel_restart_prepare() in kernel_kexec() instead of duplicating the
code.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Acked-by: Pavel Machek <pavel@suse.cz>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | include/linux/reboot.h | 1 | ||||
| -rw-r--r-- | kernel/kexec.c | 6 | ||||
| -rw-r--r-- | kernel/sys.c | 2 | 
3 files changed, 3 insertions, 6 deletions
diff --git a/include/linux/reboot.h b/include/linux/reboot.h index b93b541cf11..988e55fe649 100644 --- a/include/linux/reboot.h +++ b/include/linux/reboot.h @@ -59,6 +59,7 @@ extern void machine_crash_shutdown(struct pt_regs *);   * Architecture independent implemenations of sys_reboot commands.   */ +extern void kernel_restart_prepare(char *cmd);  extern void kernel_restart(char *cmd);  extern void kernel_halt(void);  extern void kernel_power_off(void); diff --git a/kernel/kexec.c b/kernel/kexec.c index 2810558802b..b81682312dc 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -1472,11 +1472,7 @@ int kernel_kexec(void)  	} else  #endif  	{ -		blocking_notifier_call_chain(&reboot_notifier_list, -					     SYS_RESTART, NULL); -		system_state = SYSTEM_RESTART; -		device_shutdown(); -		sysdev_shutdown(); +		kernel_restart_prepare(NULL);  		printk(KERN_EMERG "Starting new kernel\n");  		machine_shutdown();  	} diff --git a/kernel/sys.c b/kernel/sys.c index c01858090a9..3dacb00a7f7 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -274,7 +274,7 @@ void emergency_restart(void)  }  EXPORT_SYMBOL_GPL(emergency_restart); -static void kernel_restart_prepare(char *cmd) +void kernel_restart_prepare(char *cmd)  {  	blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd);  	system_state = SYSTEM_RESTART;  |