From c4cefca6d66297d229683254d19056e834646996 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 6 Oct 2006 13:11:15 -0700 Subject: [PATCH] --- yaml --- r: 39079 b: refs/heads/master c: e630015504cdd4d166c371fec39b8ca258fcbc0e h: refs/heads/master i: 39077: 2bf8573ef2596c0f20aedd227a8f58eb7768f80d 39075: 9556dd4c01401f76680cb904857514058a748273 39071: d8a25dad180fb9ed90193df4c3a8e4577aab2af5 v: v3 --- [refs] | 2 +- trunk/arch/arm/kernel/irq.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ace00bcb3cae..6b1e392cbb59 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e317c8ccaaf900abf39cc3240e4dc5ba82a3cc67 +refs/heads/master: e630015504cdd4d166c371fec39b8ca258fcbc0e diff --git a/trunk/arch/arm/kernel/irq.c b/trunk/arch/arm/kernel/irq.c index e999b11de2c6..2c4ff1cbe334 100644 --- a/trunk/arch/arm/kernel/irq.c +++ b/trunk/arch/arm/kernel/irq.c @@ -111,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; /* @@ -122,13 +123,13 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) 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)