Signed-off-by: Andrew Morton --- arch/x86_64/kernel/apic.c | 15 ++------------- arch/x86_64/kernel/io_apic.c | 20 +++++++------------- arch/x86_64/kernel/smpboot.c | 11 +---------- 3 files changed, 10 insertions(+), 36 deletions(-) diff -puN arch/x86_64/kernel/apic.c~x86_64-remove-apic-errata arch/x86_64/kernel/apic.c --- devel/arch/x86_64/kernel/apic.c~x86_64-remove-apic-errata 2005-09-07 20:10:22.000000000 -0700 +++ devel-akpm/arch/x86_64/kernel/apic.c 2005-09-07 20:10:22.000000000 -0700 @@ -109,11 +109,8 @@ void clear_local_APIC(void) if (maxlvt >= 4) apic_write_around(APIC_LVTPC, APIC_LVT_MASKED); v = GET_APIC_VERSION(apic_read(APIC_LVR)); - if (APIC_INTEGRATED(v)) { /* !82489DX */ - if (maxlvt > 3) /* Due to Pentium errata 3AP and 11AP. */ - apic_write(APIC_ESR, 0); - apic_read(APIC_ESR); - } + apic_write(APIC_ESR, 0); + apic_read(APIC_ESR); } void __init connect_bsp_APIC(void) @@ -316,8 +313,6 @@ void __init init_bsp_APIC(void) */ apic_write_around(APIC_LVT0, APIC_DM_EXTINT); value = APIC_DM_NMI; - if (!APIC_INTEGRATED(ver)) /* 82489DX */ - value |= APIC_LVT_LEVEL_TRIGGER; apic_write_around(APIC_LVT1, value); } @@ -422,15 +417,11 @@ void __cpuinit setup_local_APIC (void) value = APIC_DM_NMI; else value = APIC_DM_NMI | APIC_LVT_MASKED; - if (!APIC_INTEGRATED(ver)) /* 82489DX */ - value |= APIC_LVT_LEVEL_TRIGGER; apic_write_around(APIC_LVT1, value); { unsigned oldvalue; maxlvt = get_maxlvt(); - if (maxlvt > 3) /* Due to the Pentium erratum 3AP. */ - apic_write(APIC_ESR, 0); oldvalue = apic_read(APIC_ESR); value = ERROR_APIC_VECTOR; // enables sending errors apic_write_around(APIC_LVTERR, value); @@ -674,8 +665,6 @@ static void __setup_APIC_LVTT(unsigned i ver = GET_APIC_VERSION(apic_read(APIC_LVR)); lvtt_value = APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR; - if (!APIC_INTEGRATED(ver)) - lvtt_value |= SET_APIC_TIMER_BASE(APIC_TIMER_BASE_DIV); apic_write_around(APIC_LVTT, lvtt_value); /* diff -puN arch/x86_64/kernel/io_apic.c~x86_64-remove-apic-errata arch/x86_64/kernel/io_apic.c --- devel/arch/x86_64/kernel/io_apic.c~x86_64-remove-apic-errata 2005-09-07 20:10:22.000000000 -0700 +++ devel-akpm/arch/x86_64/kernel/io_apic.c 2005-09-07 20:10:22.000000000 -0700 @@ -1022,13 +1022,11 @@ void __apicdebuginit print_local_APIC(vo v = apic_read(APIC_TASKPRI); printk(KERN_DEBUG "... APIC TASKPRI: %08x (%02x)\n", v, v & APIC_TPRI_MASK); - if (APIC_INTEGRATED(ver)) { /* !82489DX */ - v = apic_read(APIC_ARBPRI); - printk(KERN_DEBUG "... APIC ARBPRI: %08x (%02x)\n", v, - v & APIC_ARBPRI_MASK); - v = apic_read(APIC_PROCPRI); - printk(KERN_DEBUG "... APIC PROCPRI: %08x\n", v); - } + v = apic_read(APIC_ARBPRI); + printk(KERN_DEBUG "... APIC ARBPRI: %08x (%02x)\n", v, + v & APIC_ARBPRI_MASK); + v = apic_read(APIC_PROCPRI); + printk(KERN_DEBUG "... APIC PROCPRI: %08x\n", v); v = apic_read(APIC_EOI); printk(KERN_DEBUG "... APIC EOI: %08x\n", v); @@ -1048,12 +1046,8 @@ void __apicdebuginit print_local_APIC(vo printk(KERN_DEBUG "... APIC IRR field:\n"); print_APIC_bitfield(APIC_IRR); - if (APIC_INTEGRATED(ver)) { /* !82489DX */ - if (maxlvt > 3) /* Due to the Pentium erratum 3AP. */ - apic_write(APIC_ESR, 0); - v = apic_read(APIC_ESR); - printk(KERN_DEBUG "... APIC ESR: %08x\n", v); - } + v = apic_read(APIC_ESR); + printk(KERN_DEBUG "... APIC ESR: %08x\n", v); v = apic_read(APIC_ICR); printk(KERN_DEBUG "... APIC ICR: %08x\n", v); diff -puN arch/x86_64/kernel/smpboot.c~x86_64-remove-apic-errata arch/x86_64/kernel/smpboot.c --- devel/arch/x86_64/kernel/smpboot.c~x86_64-remove-apic-errata 2005-09-07 20:10:22.000000000 -0700 +++ devel-akpm/arch/x86_64/kernel/smpboot.c 2005-09-07 20:10:22.000000000 -0700 @@ -610,16 +610,7 @@ static int __cpuinit wakeup_secondary_vi atomic_set(&init_deasserted, 1); - /* - * Should we send STARTUP IPIs ? - * - * Determine this based on the APIC version. - * If we don't have an integrated APIC, don't send the STARTUP IPIs. - */ - if (APIC_INTEGRATED(apic_version[phys_apicid])) - num_starts = 2; - else - num_starts = 0; + num_starts = 2; /* * Run STARTUP IPI loop. _