Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[pandora-kernel.git] / arch / powerpc / kernel / machine_kexec.c
index dd6c141..df7e20c 100644 (file)
 #include <linux/threads.h>
 #include <linux/memblock.h>
 #include <linux/of.h>
+#include <linux/irq.h>
+
 #include <asm/machdep.h>
 #include <asm/prom.h>
 #include <asm/sections.h>
 
+void machine_kexec_mask_interrupts(void) {
+       unsigned int i;
+
+       for_each_irq(i) {
+               struct irq_desc *desc = irq_to_desc(i);
+
+               if (!desc || !desc->chip)
+                       continue;
+
+               if (desc->chip->eoi &&
+                   desc->status & IRQ_INPROGRESS)
+                       desc->chip->eoi(i);
+
+               if (desc->chip->mask)
+                       desc->chip->mask(i);
+
+               if (desc->chip->disable &&
+                   !(desc->status & IRQ_DISABLED))
+                       desc->chip->disable(i);
+       }
+}
+
 void machine_crash_shutdown(struct pt_regs *regs)
 {
        if (ppc_md.machine_crash_shutdown)