]> err.no Git - linux-2.6/blobdiff - arch/ppc64/kernel/setup.c
Merge HEAD from master.kernel.org:/home/rmk/linux-2.6-ucb.git
[linux-2.6] / arch / ppc64 / kernel / setup.c
index d5e4866e9ac2e22599a5abf7979b99616071c65c..e9c24d2dbd91276407ba53d2abd9e4b2fc013b34 100644 (file)
@@ -96,7 +96,6 @@ extern void udbg_init_maple_realmode(void);
 extern unsigned long klimit;
 
 extern void mm_init_ppc64(void);
-extern int  idle_setup(void);
 extern void stab_initialize(unsigned long stab);
 extern void htab_initialize(void);
 extern void early_init_devtree(void *flat_dt);
@@ -695,7 +694,6 @@ void machine_restart(char *cmd)
        local_irq_disable();
        while (1) ;
 }
-EXPORT_SYMBOL(machine_restart);
 
 void machine_power_off(void)
 {
@@ -708,7 +706,8 @@ void machine_power_off(void)
        local_irq_disable();
        while (1) ;
 }
-EXPORT_SYMBOL(machine_power_off);
+/* Used by the G5 thermal driver */
+EXPORT_SYMBOL_GPL(machine_power_off);
 
 void machine_halt(void)
 {
@@ -721,7 +720,6 @@ void machine_halt(void)
        local_irq_disable();
        while (1) ;
 }
-EXPORT_SYMBOL(machine_halt);
 
 static int ppc64_panic_event(struct notifier_block *this,
                              unsigned long event, void *ptr)
@@ -1072,6 +1070,8 @@ void __init setup_arch(char **cmdline_p)
        irqstack_early_init();
        emergency_stack_init();
 
+       stabs_alloc();
+
        /* set up the bootmem stuff with available memory */
        do_init_bootmem();
        sparse_init();
@@ -1081,8 +1081,11 @@ void __init setup_arch(char **cmdline_p)
 
        ppc_md.setup_arch();
 
-       /* Select the correct idle loop for the platform. */
-       idle_setup();
+       /* Use the default idle loop if the platform hasn't provided one. */
+       if (NULL == ppc_md.idle_loop) {
+               ppc_md.idle_loop = default_idle;
+               printk(KERN_INFO "Using default idle loop\n");
+       }
 
        paging_init();
        ppc64_boot_msg(0x15, "Setup Done");