diff options
author | David S. Miller <davem@davemloft.net> | 2011-05-20 13:10:22 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-05-20 13:10:22 -0700 |
commit | 90d3ac15e5c637d45849e83c828ed78c62886737 (patch) | |
tree | c5568365f32386559d2710e8981ed41e5fe0eb12 /arch/sparc | |
parent | 9fafbd806198eb690c9a9f9fe35a879db93a1b8d (diff) | |
parent | 317f394160e9beb97d19a84c39b7e5eb3d7815a8 (diff) |
Merge commit '317f394160e9beb97d19a84c39b7e5eb3d7815a8'
Conflicts:
arch/sparc/kernel/smp_32.c
With merge conflict help from Daniel Hellstrom.
Signed-off-by: David S. Miller <davem@davemloft.net>
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 41102c5a670..d5b3958be0b 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) void smp_resched_interrupt(void) { + irq_enter(); + scheduler_ipi(); local_cpu_data().irq_resched_count++; - /* - * do nothing, since it all was about calling re-schedule - * routine called by interrupt return code. - */ + irq_exit(); + /* re-schedule routine called by interrupt return code. */ } void smp_call_function_single_interrupt(void) diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index c274a30c3cb..99cb17251bb 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) void __irq_entry smp_receive_signal_client(int irq, struct pt_regs *regs) { clear_softint(1 << irq); + scheduler_ipi(); } /* This is a nop because we capture all other cpus |