aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2005-11-08 05:40:10 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-11-08 05:40:10 -0500
commitdbebb4cbe02dc811e21bd3bc40a252490e46b949 (patch)
tree4d76e96bd71dd3837253fbe00f8f6d6769644015
parentf093182d313edde9b1f86dbdaf40ba4da2dbd0e7 (diff)
[ARM SMP] Add missing SMP timer handling for realview
Until we have local timer support, we need to broadcast the timer interrupt to the other CPUs. Also, add the missing smp_send_timer() prototype to asm/smp.h Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/mach-realview/core.c5
-rw-r--r--include/asm-arm/smp.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 482eb512ebe8..4ea60d8b6e36 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -550,6 +550,11 @@ static irqreturn_t realview_timer_interrupt(int irq, void *dev_id, struct pt_reg
550 550
551 timer_tick(regs); 551 timer_tick(regs);
552 552
553#ifdef CONFIG_SMP
554 smp_send_timer();
555 update_process_times(user_mode(regs));
556#endif
557
553 write_sequnlock(&xtime_lock); 558 write_sequnlock(&xtime_lock);
554 559
555 return IRQ_HANDLED; 560 return IRQ_HANDLED;
diff --git a/include/asm-arm/smp.h b/include/asm-arm/smp.h
index 551cd3c3093c..21d1723c03e1 100644
--- a/include/asm-arm/smp.h
+++ b/include/asm-arm/smp.h
@@ -47,6 +47,11 @@ extern void smp_store_cpu_info(unsigned int cpuid);
47extern void smp_cross_call(cpumask_t callmap); 47extern void smp_cross_call(cpumask_t callmap);
48 48
49/* 49/*
50 * Broadcast a timer interrupt to the other CPUs.
51 */
52extern void smp_send_timer(void);
53
54/*
50 * Boot a secondary CPU, and assign it the specified idle task. 55 * Boot a secondary CPU, and assign it the specified idle task.
51 * This also gives us the initial stack to use for this CPU. 56 * This also gives us the initial stack to use for this CPU.
52 */ 57 */