This should fix up the per-cpu irq register pointer if we have nested
hardware interrupts.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
*/
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;
/*
irq_enter();
- set_irq_regs(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)