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>
This commit is contained in:
Michael Ellerman
2010-07-09 15:34:00 +10:00
committed by Benjamin Herrenschmidt
parent 0e37d25950
commit 850f22d568
3 changed files with 13 additions and 2 deletions

View File

@ -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
/*