]> err.no Git - linux-2.6/blobdiff - arch/powerpc/kernel/crash.c
[PATCH] Add comments to the PDA structure to annotate offsets
[linux-2.6] / arch / powerpc / kernel / crash.c
index b537cfa4e09b167d383cc8a908790dfd3560127f..1af41f7616dc84b280f60832ae7e2e9a9d5378bf 100644 (file)
@@ -44,6 +44,7 @@
 /* This keeps a track of which one is crashing cpu. */
 int crashing_cpu = -1;
 static cpumask_t cpus_in_crash = CPU_MASK_NONE;
+cpumask_t cpus_in_sr = CPU_MASK_NONE;
 
 static u32 *append_elf_note(u32 *buf, char *name, unsigned type, void *data,
                                                               size_t data_len)
@@ -139,7 +140,13 @@ void crash_ipi_callback(struct pt_regs *regs)
 
        if (ppc_md.kexec_cpu_down)
                ppc_md.kexec_cpu_down(1, 1);
+
+#ifdef CONFIG_PPC64
        kexec_smp_wait();
+#else
+       for (;;);       /* FIXME */
+#endif
+
        /* NOTREACHED */
 }
 
@@ -255,7 +262,11 @@ static void crash_kexec_prepare_cpus(int cpu)
         *
         * do this if kexec in setup.c ?
         */
+#ifdef CONFIG_PPC64
        smp_release_cpus();
+#else
+       /* FIXME */
+#endif
 }
 
 void crash_kexec_secondary(struct pt_regs *regs)
@@ -281,13 +292,13 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
        local_irq_disable();
 
        for_each_irq(irq) {
-               struct irq_desc *desc = irq_descp(irq);
+               struct irq_desc *desc = irq_desc + irq;
 
                if (desc->status & IRQ_INPROGRESS)
-                       desc->handler->end(irq);
+                       desc->chip->eoi(irq);
 
                if (!(desc->status & IRQ_DISABLED))
-                       desc->handler->disable(irq);
+                       desc->chip->disable(irq);
        }
 
        /*