aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/smpboot.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-01-11 16:46:51 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-11 22:05:03 -0500
commit11a8e778c46ee76fc46b0a7fa9d455b5a8e3e19f (patch)
tree2e6d19e5fbb9d686448868bc087673e696b5b4be /arch/x86_64/kernel/smpboot.c
parent5f1d189f8a87930d62c507800a8ac20b9a185e41 (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.c11
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");