diff options
author | Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> | 2006-01-11 16:44:24 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 22:04:54 -0500 |
commit | d25bf7e5fe73b5b6d2246ab0be08ae35d718456b (patch) | |
tree | 472749fef9b017e9a4d94f9e07a29dc44c3294cb /arch/x86_64/kernel/time.c | |
parent | 6eb0a0fd059598ee0d49c6283ce25cccd743e9fc (diff) |
[PATCH] x86_64: Handle missing local APIC timer interrupts on C3 state
Whenever we see that a CPU is capable of C3 (during ACPI cstate init), we
disable local APIC timer and switch to using a broadcast from external timer
interrupt (IRQ 0).
Patch below adds the code for x86_64.
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/time.c')
-rw-r--r-- | arch/x86_64/kernel/time.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c index 43c9fa0f8d5f..211bf0e51d9d 100644 --- a/arch/x86_64/kernel/time.c +++ b/arch/x86_64/kernel/time.c | |||
@@ -471,6 +471,11 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
471 | 471 | ||
472 | write_sequnlock(&xtime_lock); | 472 | write_sequnlock(&xtime_lock); |
473 | 473 | ||
474 | #ifdef CONFIG_X86_LOCAL_APIC | ||
475 | if (using_apic_timer) | ||
476 | smp_send_timer_broadcast_ipi(); | ||
477 | #endif | ||
478 | |||
474 | return IRQ_HANDLED; | 479 | return IRQ_HANDLED; |
475 | } | 480 | } |
476 | 481 | ||