aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/irq.c
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2010-07-09 15:34:00 +1000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2010-07-09 16:11:19 +1000
commit850f22d5688941ea51628f3f8f8dcf3baff409ff (patch)
tree99e3ea43035a7d96b7f7bea81428186dea6ad000 /arch/powerpc/kernel/irq.c
parent0e37d25950f4fd5a7d74723e6ce608aaa972d24c (diff)
downloadlinux-850f22d5688941ea51628f3f8f8dcf3baff409ff.tar.gz
powerpc/book3e: Resend doorbell exceptions to ourself
If we are soft disabled and receive a doorbell exception we don't process it immediately. This means we need to check on the way out of irq restore if there are any doorbell exceptions to process. The problem is at that point we don't know what our regs are, and that in turn makes xmon unhappy. To workaround the problem, instead of checking for and processing doorbells, we check for any doorbells and if there were any we send ourselves another. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/irq.c')
-rw-r--r--arch/powerpc/kernel/irq.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 2f6dc7faf6debd..8f96d319890515 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -156,8 +156,8 @@ notrace void raw_local_irq_restore(unsigned long en)
return;
#if defined(CONFIG_BOOKE) && defined(CONFIG_SMP)
- /* Check for pending doorbell interrupts on SMP */
- doorbell_exception(NULL);
+ /* Check for pending doorbell interrupts and resend to ourself */
+ doorbell_check_self();
#endif
/*