diff options
| author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2005-11-08 05:40:10 -0500 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-11-08 05:40:10 -0500 |
| commit | dbebb4cbe02dc811e21bd3bc40a252490e46b949 (patch) | |
| tree | 4d76e96bd71dd3837253fbe00f8f6d6769644015 | |
| parent | f093182d313edde9b1f86dbdaf40ba4da2dbd0e7 (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.c | 5 | ||||
| -rw-r--r-- | include/asm-arm/smp.h | 5 |
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); | |||
| 47 | extern void smp_cross_call(cpumask_t callmap); | 47 | extern void smp_cross_call(cpumask_t callmap); |
| 48 | 48 | ||
| 49 | /* | 49 | /* |
| 50 | * Broadcast a timer interrupt to the other CPUs. | ||
| 51 | */ | ||
| 52 | extern 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 | */ |
