From: Michael Gernoth Date: Sun, 22 May 2011 12:11:29 +0000 (+0200) Subject: call real kernel_restart_prepare X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/ms2-kexec/commitdiff_plain/564905afa42095ac74577634db65f902f2533c31?ds=sidebyside call real kernel_restart_prepare --- diff --git a/sys.c b/sys.c index 611276b..06b1c44 100644 --- a/sys.c +++ b/sys.c @@ -46,25 +46,11 @@ 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) { - 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(); +#warning assuming kernel_restart_prepare is at 0xc00779cc + void (*original_kernel_restart_prepare)(char *) = (void (*)(char *))0xc00779cc; + return original_kernel_restart_prepare(cmd); } /*