diff options
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/kernel/irq_alpha.c | 2 | ||||
-rw-r--r-- | arch/alpha/kernel/traps.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c index e6ded33c6e22..9d34ce26e5ef 100644 --- a/arch/alpha/kernel/irq_alpha.c +++ b/arch/alpha/kernel/irq_alpha.c | |||
@@ -55,6 +55,8 @@ do_entInt(unsigned long type, unsigned long vector, | |||
55 | #ifdef CONFIG_SMP | 55 | #ifdef CONFIG_SMP |
56 | { | 56 | { |
57 | long cpu; | 57 | long cpu; |
58 | |||
59 | local_irq_disable(); | ||
58 | smp_percpu_timer_interrupt(regs); | 60 | smp_percpu_timer_interrupt(regs); |
59 | cpu = smp_processor_id(); | 61 | cpu = smp_processor_id(); |
60 | if (cpu != boot_cpuid) { | 62 | if (cpu != boot_cpuid) { |
diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c index fd7bd17cc960..6f509a644bdd 100644 --- a/arch/alpha/kernel/traps.c +++ b/arch/alpha/kernel/traps.c | |||
@@ -240,7 +240,7 @@ do_entIF(unsigned long type, struct pt_regs *regs) | |||
240 | siginfo_t info; | 240 | siginfo_t info; |
241 | int signo, code; | 241 | int signo, code; |
242 | 242 | ||
243 | if (regs->ps == 0) { | 243 | if ((regs->ps & ~IPL_MAX) == 0) { |
244 | if (type == 1) { | 244 | if (type == 1) { |
245 | const unsigned int *data | 245 | const unsigned int *data |
246 | = (const unsigned int *) regs->pc; | 246 | = (const unsigned int *) regs->pc; |