diff options
author | Paul Mackerras <paulus@samba.org> | 2005-11-07 19:14:20 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-11-07 19:14:20 -0500 |
commit | 24bfb00123e82a2e70bd115277d922438813515b (patch) | |
tree | 27328b8a5718e16d64e2d101f4b7ddcad5930aed /arch/i386/kernel/apic.c | |
parent | c6135234550ed89a6fd0e8cb229633967e41d649 (diff) | |
parent | 3f00d3e8fb963968a922d821a9a53b503b687e81 (diff) |
Merge ../linux-2.6
Diffstat (limited to 'arch/i386/kernel/apic.c')
-rw-r--r-- | arch/i386/kernel/apic.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 7c724ffa08bb..496a2c9909fe 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -559,14 +559,20 @@ void __devinit setup_local_APIC(void) | |||
559 | * If Linux enabled the LAPIC against the BIOS default | 559 | * If Linux enabled the LAPIC against the BIOS default |
560 | * disable it down before re-entering the BIOS on shutdown. | 560 | * disable it down before re-entering the BIOS on shutdown. |
561 | * Otherwise the BIOS may get confused and not power-off. | 561 | * Otherwise the BIOS may get confused and not power-off. |
562 | * Additionally clear all LVT entries before disable_local_APIC | ||
563 | * for the case where Linux didn't enable the LAPIC. | ||
562 | */ | 564 | */ |
563 | void lapic_shutdown(void) | 565 | void lapic_shutdown(void) |
564 | { | 566 | { |
565 | if (!cpu_has_apic || !enabled_via_apicbase) | 567 | if (!cpu_has_apic) |
566 | return; | 568 | return; |
567 | 569 | ||
568 | local_irq_disable(); | 570 | local_irq_disable(); |
569 | disable_local_APIC(); | 571 | clear_local_APIC(); |
572 | |||
573 | if (enabled_via_apicbase) | ||
574 | disable_local_APIC(); | ||
575 | |||
570 | local_irq_enable(); | 576 | local_irq_enable(); |
571 | } | 577 | } |
572 | 578 | ||