From 4f5f5319d739004b5b70c45f90391e05b8db4306 Mon Sep 17 00:00:00 2001 From: Michael Gernoth Date: Wed, 25 May 2011 00:12:21 +0200 Subject: [PATCH 1/1] calling the real kernel_restart_prepare wasn't such a bad idea after all --- sys.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys.c b/sys.c index 23eb124..fd71e4f 100644 --- a/sys.c +++ b/sys.c @@ -46,6 +46,7 @@ extern asmlinkage long (*original_reboot)(int magic1, int magic2, unsigned int cmd, void __user *arg); +#if 0 static struct notifier_block dummy_notifier_reboot = { .notifier_call = NULL, .next = NULL, @@ -53,10 +54,15 @@ static struct notifier_block dummy_notifier_reboot = { }; BLOCKING_NOTIFIER_HEAD(notifier_head); +#endif 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); +#if 0 register_reboot_notifier(&dummy_notifier_reboot); notifier_head.head=dummy_notifier_reboot.next; unregister_reboot_notifier(&dummy_notifier_reboot); @@ -65,6 +71,7 @@ void kernel_restart_prepare(char *cmd) system_state = SYSTEM_RESTART; //device_shutdown(); //sysdev_shutdown(); +#endif } /* -- 2.39.5