From: David S. Miller Date: Fri, 20 May 2011 20:10:22 +0000 (-0700) Subject: Merge commit '317f394160e9beb97d19a84c39b7e5eb3d7815a8' X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=90d3ac15e5c637d45849e83c828ed78c62886737;p=mv-sheeva.git Merge commit '317f394160e9beb97d19a84c39b7e5eb3d7815a8' Conflicts: arch/sparc/kernel/smp_32.c With merge conflict help from Daniel Hellstrom. Signed-off-by: David S. Miller --- 90d3ac15e5c637d45849e83c828ed78c62886737 diff --cc arch/sparc/kernel/smp_32.c index 41102c5a670,f95690c167b..d5b3958be0b --- a/arch/sparc/kernel/smp_32.c +++ b/arch/sparc/kernel/smp_32.c @@@ -139,46 -134,6 +139,46 @@@ void smp_send_stop(void { } +void arch_send_call_function_single_ipi(int cpu) +{ + /* trigger one IPI single call on one CPU */ + BTFIXUP_CALL(smp_ipi_single)(cpu); +} + +void arch_send_call_function_ipi_mask(const struct cpumask *mask) +{ + int cpu; + + /* trigger IPI mask call on each CPU */ + for_each_cpu(cpu, mask) + BTFIXUP_CALL(smp_ipi_mask_one)(cpu); +} + +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) +{ + irq_enter(); + generic_smp_call_function_single_interrupt(); + local_cpu_data().irq_call_count++; + irq_exit(); +} + +void smp_call_function_interrupt(void) +{ + irq_enter(); + generic_smp_call_function_interrupt(); + local_cpu_data().irq_call_count++; + irq_exit(); +} + void smp_flush_cache_all(void) { xc0((smpfunc_t) BTFIXUP_CALL(local_flush_cache_all));