Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee13...
[pandora-kernel.git] / arch / arm / kernel / irq.c
index 626feee..2c4ff1c 100644 (file)
@@ -77,6 +77,7 @@ int show_interrupts(struct seq_file *p, void *v)
                seq_printf(p, "%3d: ", i);
                for_each_present_cpu(cpu)
                        seq_printf(p, "%10u ", kstat_cpu(cpu).irqs[i]);
+               seq_printf(p, " %10s", irq_desc[i].chip->name ? : "-");
                seq_printf(p, "  %s", action->name);
                for (action = action->next; action; action = action->next)
                        seq_printf(p, ", %s", action->name);
@@ -110,6 +111,7 @@ static struct irq_desc bad_irq_desc = {
  */
 asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
 {
+       struct pt_regs *old_regs = set_irq_regs(regs);
        struct irqdesc *desc = irq_desc + irq;
 
        /*
@@ -121,12 +123,13 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
 
        irq_enter();
 
-       desc_handle_irq(irq, desc, regs);
+       desc_handle_irq(irq, desc);
 
        /* AT91 specific workaround */
        irq_finish(irq);
 
        irq_exit();
+       set_irq_regs(old_regs);
 }
 
 void set_irq_flags(unsigned int irq, unsigned int iflags)