diff options
author | Andi Kleen <ak@suse.de> | 2006-01-11 16:46:51 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 22:05:03 -0500 |
commit | 11a8e778c46ee76fc46b0a7fa9d455b5a8e3e19f (patch) | |
tree | 2e6d19e5fbb9d686448868bc087673e696b5b4be /arch/x86_64/kernel/smpboot.c | |
parent | 5f1d189f8a87930d62c507800a8ac20b9a185e41 (diff) |
[PATCH] x86_64: Some housekeeping in local APIC code
Remove support for obsolete hardware and cleanup.
- Remove checks for non integrated APICs
- Replace apic_write_around with apic_write.
- Remove apic_read_around
- Remove APIC version reads used by old workarounds
- Remove old workaround for Simics
- Fix indentation
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/smpboot.c')
-rw-r--r-- | arch/x86_64/kernel/smpboot.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index c8169d066cbd..c9e941ae5019 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c | |||
@@ -666,7 +666,6 @@ static int __cpuinit wakeup_secondary_via_INIT(int phys_apicid, unsigned int sta | |||
666 | 666 | ||
667 | for (j = 1; j <= num_starts; j++) { | 667 | for (j = 1; j <= num_starts; j++) { |
668 | Dprintk("Sending STARTUP #%d.\n",j); | 668 | Dprintk("Sending STARTUP #%d.\n",j); |
669 | apic_read_around(APIC_SPIV); | ||
670 | apic_write(APIC_ESR, 0); | 669 | apic_write(APIC_ESR, 0); |
671 | apic_read(APIC_ESR); | 670 | apic_read(APIC_ESR); |
672 | Dprintk("After apic_write.\n"); | 671 | Dprintk("After apic_write.\n"); |
@@ -705,7 +704,6 @@ static int __cpuinit wakeup_secondary_via_INIT(int phys_apicid, unsigned int sta | |||
705 | * Due to the Pentium erratum 3AP. | 704 | * Due to the Pentium erratum 3AP. |
706 | */ | 705 | */ |
707 | if (maxlvt > 3) { | 706 | if (maxlvt > 3) { |
708 | apic_read_around(APIC_SPIV); | ||
709 | apic_write(APIC_ESR, 0); | 707 | apic_write(APIC_ESR, 0); |
710 | } | 708 | } |
711 | accept_status = (apic_read(APIC_ESR) & 0xEF); | 709 | accept_status = (apic_read(APIC_ESR) & 0xEF); |
@@ -842,11 +840,8 @@ do_rest: | |||
842 | /* | 840 | /* |
843 | * Be paranoid about clearing APIC errors. | 841 | * Be paranoid about clearing APIC errors. |
844 | */ | 842 | */ |
845 | if (APIC_INTEGRATED(apic_version[apicid])) { | 843 | apic_write(APIC_ESR, 0); |
846 | apic_read_around(APIC_SPIV); | 844 | apic_read(APIC_ESR); |
847 | apic_write(APIC_ESR, 0); | ||
848 | apic_read(APIC_ESR); | ||
849 | } | ||
850 | 845 | ||
851 | /* | 846 | /* |
852 | * Status is now clean | 847 | * Status is now clean |
@@ -1024,7 +1019,7 @@ static int __init smp_sanity_check(unsigned max_cpus) | |||
1024 | /* | 1019 | /* |
1025 | * If we couldn't find a local APIC, then get out of here now! | 1020 | * If we couldn't find a local APIC, then get out of here now! |
1026 | */ | 1021 | */ |
1027 | if (APIC_INTEGRATED(apic_version[boot_cpu_id]) && !cpu_has_apic) { | 1022 | if (!cpu_has_apic) { |
1028 | printk(KERN_ERR "BIOS bug, local APIC #%d not detected!...\n", | 1023 | printk(KERN_ERR "BIOS bug, local APIC #%d not detected!...\n", |
1029 | boot_cpu_id); | 1024 | boot_cpu_id); |
1030 | printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n"); | 1025 | printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n"); |