summaryrefslogtreecommitdiff
path: root/arch/parisc/kernel/irq.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-01-22 14:30:35 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2013-01-22 14:30:35 -0800
commit343391b1d14cf1e282f3cf5b4ea416c2ae2a4c9a (patch)
tree67d32c4ea86a832e7931304224b5fadf07385ec1 /arch/parisc/kernel/irq.c
parent262060ea46902523a9d16400aa6f5b472e99cfa6 (diff)
parentad30f3ff3deb4037f2beea15812d01d795f8b3cc (diff)
downloadlinux-3.10-343391b1d14cf1e282f3cf5b4ea416c2ae2a4c9a.tar.gz
linux-3.10-343391b1d14cf1e282f3cf5b4ea416c2ae2a4c9a.tar.bz2
linux-3.10-343391b1d14cf1e282f3cf5b4ea416c2ae2a4c9a.zip
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc fixes from Helge Deller: "Improve the stability of the linux kernel on the parisc architecture" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: sigaltstack doesn't round ss.ss_sp as required parisc: improve ptrace support for gdb single-step parisc: don't claim cpu irqs more than once parisc: avoid undefined shift in cnv_float.h
Diffstat (limited to 'arch/parisc/kernel/irq.c')
-rw-r--r--arch/parisc/kernel/irq.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c
index c0b1affc06a..0299d63cd11 100644
--- a/arch/parisc/kernel/irq.c
+++ b/arch/parisc/kernel/irq.c
@@ -410,11 +410,13 @@ void __init init_IRQ(void)
{
local_irq_disable(); /* PARANOID - should already be disabled */
mtctl(~0UL, 23); /* EIRR : clear all pending external intr */
- claim_cpu_irqs();
#ifdef CONFIG_SMP
- if (!cpu_eiem)
+ if (!cpu_eiem) {
+ claim_cpu_irqs();
cpu_eiem = EIEM_MASK(IPI_IRQ) | EIEM_MASK(TIMER_IRQ);
+ }
#else
+ claim_cpu_irqs();
cpu_eiem = EIEM_MASK(TIMER_IRQ);
#endif
set_eiem(cpu_eiem); /* EIEM : enable all external intr */