[PARISC] Make sure timer and IPI execute with interrupts disabled
authorJames Bottomley <jejb@parisc-linux.org>
Thu, 17 Nov 2005 21:24:52 +0000 (16:24 -0500)
committerKyle McMartin <kyle@parisc-linux.org>
Thu, 17 Nov 2005 21:24:52 +0000 (16:24 -0500)
commit9a8b4584065dd241d6c2bf818e349986bd900b8e
treee801bca17874bdb64aa686f32d20dce76c07473e
parent6b1de9161e973bac8c4675db608fe4f38d2689bd
[PARISC] Make sure timer and IPI execute with interrupts disabled

Fix a longstanding smp bug

The problem is that both the timer and ipi interrupts are being called
with interrupts enabled, which isn't what anyone is expecting.

The IPI issue has just started to show up by causing a BUG_ON in the
slab debugging code.  The timer issue never shows up because there's an
eiem work around in our irq.c

The fix is to label both these as SA_INTERRUPT which causes the generic
irq code not to enable interrupts.

I also suspect the smp_call_function timeouts we're seeing might be
connected with the fact that we disable IPIs when handling any other
type of interrupt.  I've put a WARN_ON in the code for executing
smp_call_function() with IPIs disabled.

Signed-off-by: James Bottomley <jejb@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
arch/parisc/kernel/irq.c
arch/parisc/kernel/smp.c