From: Michael Gernoth Date: Sun, 22 May 2011 21:51:37 +0000 (+0200) Subject: Revert "call real kernel_restart_prepare" X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/ms2-kexec/commitdiff_plain/a16260b824197a0f19ad9f2443d226d2c03d37e0?ds=sidebyside Revert "call real kernel_restart_prepare" This reverts commit 564905afa42095ac74577634db65f902f2533c31. --- diff --git a/sys.c b/sys.c index 06b1c44..611276b 100644 --- a/sys.c +++ b/sys.c @@ -46,11 +46,25 @@ extern asmlinkage long (*original_reboot)(int magic1, int magic2, unsigned int cmd, void __user *arg); +static struct notifier_block dummy_notifier_reboot = { + .notifier_call = NULL, + .next = NULL, + .priority = INT_MAX +}; + +BLOCKING_NOTIFIER_HEAD(notifier_head); + + void kernel_restart_prepare(char *cmd) { -#warning assuming kernel_restart_prepare is at 0xc00779cc - void (*original_kernel_restart_prepare)(char *) = (void (*)(char *))0xc00779cc; - return original_kernel_restart_prepare(cmd); + register_reboot_notifier(&dummy_notifier_reboot); + notifier_head.head=dummy_notifier_reboot.next; + unregister_reboot_notifier(&dummy_notifier_reboot); + + blocking_notifier_call_chain(¬ifier_head, SYS_RESTART, cmd); + system_state = SYSTEM_RESTART; +// device_shutdown(); +// sysdev_shutdown(); } /*