On Thu, Aug 07, 2008 at 05:05:28PM +0800, Huang Ying wrote: > Call kernel_restart_prepare() in kernel_kexec() instead of duplicating > the code. > > Signed-off-by: Huang Ying <ying.huang at intel.com> > > --- > include/linux/reboot.h | 1 + > kernel/kexec.c | 6 +----- > kernel/sys.c | 2 +- > 3 files changed, 3 insertions(+), 6 deletions(-) > > --- a/include/linux/reboot.h > +++ b/include/linux/reboot.h > @@ -59,6 +59,7 @@ extern void machine_crash_shutdown(struc > * 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); > --- 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; > --- 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(); > } Looks good to me. Acked-by: Vivek Goyal <vgoyal at redhat.com> Thanks Vivek