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:
committed by
Benjamin Herrenschmidt
parent
0e37d25950
commit
850f22d568
@@ -81,6 +81,16 @@ out:
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
void doorbell_check_self(void)
|
||||
{
|
||||
struct doorbell_cpu_info *info = &__get_cpu_var(doorbell_cpu_info);
|
||||
|
||||
if (!info->messages)
|
||||
return;
|
||||
|
||||
ppc_msgsnd(PPC_DBELL, 0, info->tag);
|
||||
}
|
||||
|
||||
#else /* CONFIG_SMP */
|
||||
void doorbell_exception(struct pt_regs *regs)
|
||||
{
|
||||
|
Reference in New Issue
Block a user