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);
 }
 
 /*