diff options
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/kernel/smp_32.c | 8 | ||||
-rw-r--r-- | arch/sparc/kernel/smp_64.c | 1 |
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/sparc/kernel/smp_32.c b/arch/sparc/kernel/smp_32.c index 41102c5a6702..d5b3958be0b4 100644 --- a/arch/sparc/kernel/smp_32.c +++ b/arch/sparc/kernel/smp_32.c | |||
@@ -156,11 +156,11 @@ void arch_send_call_function_ipi_mask(const struct cpumask *mask) | |||
156 | 156 | ||
157 | void smp_resched_interrupt(void) | 157 | void smp_resched_interrupt(void) |
158 | { | 158 | { |
159 | irq_enter(); | ||
160 | scheduler_ipi(); | ||
159 | local_cpu_data().irq_resched_count++; | 161 | local_cpu_data().irq_resched_count++; |
160 | /* | 162 | irq_exit(); |
161 | * do nothing, since it all was about calling re-schedule | 163 | /* re-schedule routine called by interrupt return code. */ |
162 | * routine called by interrupt return code. | ||
163 | */ | ||
164 | } | 164 | } |
165 | 165 | ||
166 | void smp_call_function_single_interrupt(void) | 166 | void smp_call_function_single_interrupt(void) |
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index c274a30c3cbf..99cb17251bb5 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c | |||
@@ -1368,6 +1368,7 @@ void smp_send_reschedule(int cpu) | |||
1368 | void __irq_entry smp_receive_signal_client(int irq, struct pt_regs *regs) | 1368 | void __irq_entry smp_receive_signal_client(int irq, struct pt_regs *regs) |
1369 | { | 1369 | { |
1370 | clear_softint(1 << irq); | 1370 | clear_softint(1 << irq); |
1371 | scheduler_ipi(); | ||
1371 | } | 1372 | } |
1372 | 1373 | ||
1373 | /* This is a nop because we capture all other cpus | 1374 | /* This is a nop because we capture all other cpus |