fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / um / kernel / reboot.c
index 3e4ab29..f602623 100644 (file)
@@ -5,6 +5,7 @@
 
 #include "linux/module.h"
 #include "linux/sched.h"
+#include "asm/smp.h"
 #include "user_util.h"
 #include "kern_util.h"
 #include "kern.h"
 #include "mode.h"
 #include "choose-mode.h"
 
+void (*pm_power_off)(void);
+
 #ifdef CONFIG_SMP
 static void kill_idlers(int me)
 {
+#ifdef CONFIG_MODE_TT
        struct task_struct *p;
        int i;
 
-       for(i = 0; i < sizeof(idle_threads)/sizeof(idle_threads[0]); i++){
+       for(i = 0; i < ARRAY_SIZE(idle_threads); i++){
                p = idle_threads[i];
                if((p != NULL) && (p->thread.mode.tt.extern_pid != me))
                        os_kill_process(p->thread.mode.tt.extern_pid, 0);
        }
+#endif
 }
 #endif
 
@@ -36,42 +41,24 @@ static void kill_off_processes(void)
 
 void uml_cleanup(void)
 {
-       kill_off_processes();
+        kmalloc_ok = 0;
        do_uml_exitcalls();
+       kill_off_processes();
 }
 
 void machine_restart(char * __unused)
 {
-       do_uml_exitcalls();
-       kill_off_processes();
+        uml_cleanup();
        CHOOSE_MODE(reboot_tt(), reboot_skas());
 }
 
-EXPORT_SYMBOL(machine_restart);
-
 void machine_power_off(void)
 {
-       do_uml_exitcalls();
-       kill_off_processes();
+        uml_cleanup();
        CHOOSE_MODE(halt_tt(), halt_skas());
 }
 
-EXPORT_SYMBOL(machine_power_off);
-
 void machine_halt(void)
 {
        machine_power_off();
 }
-
-EXPORT_SYMBOL(machine_halt);
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */