aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/smpboot.c
diff options
context:
space:
mode:
authorSiddha, Suresh B <suresh.b.siddha@intel.com>2006-12-06 20:14:10 -0500
committerAndi Kleen <andi@basil.nowhere.org>2006-12-06 20:14:10 -0500
commitb0d0a4ba45760b10ecee9035ed45b442c1a6cc84 (patch)
tree9fbdab9d6cc010b415d38ffccc89ccf03398a89c /arch/i386/kernel/smpboot.c
parent9899f826fc90beba4f78083f6230e06cbe1050c9 (diff)
[PATCH] x86: fix the irqbalance quirk for E7320/E7520/E7525
Move the irqbalance quirks for E7320/E7520/E7525(Errata 23 in http://download.intel.com/design/chipsets/specupdt/30304203.pdf) to early quirks. And add a PCI quirk for these platforms to check(which happens very late during the boot) if the APIC routing is indeed set to default flat mode. This fixes the breakage(in x86_64) of this quirk due to cpu hotplug which selects physical mode instead of the logical flat(as needed for this errata workaround). Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Cc: "Li, Shaohua" <shaohua.li@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'arch/i386/kernel/smpboot.c')
-rw-r--r--arch/i386/kernel/smpboot.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c
index cd7de9c9654b..346f27f4c79f 100644
--- a/arch/i386/kernel/smpboot.c
+++ b/arch/i386/kernel/smpboot.c
@@ -58,6 +58,7 @@
58#include <asm/arch_hooks.h> 58#include <asm/arch_hooks.h>
59#include <asm/nmi.h> 59#include <asm/nmi.h>
60#include <asm/pda.h> 60#include <asm/pda.h>
61#include <asm/genapic.h>
61 62
62#include <mach_apic.h> 63#include <mach_apic.h>
63#include <mach_wakecpu.h> 64#include <mach_wakecpu.h>
@@ -1482,6 +1483,12 @@ int __devinit __cpu_up(unsigned int cpu)
1482 cpu_set(cpu, smp_commenced_mask); 1483 cpu_set(cpu, smp_commenced_mask);
1483 while (!cpu_isset(cpu, cpu_online_map)) 1484 while (!cpu_isset(cpu, cpu_online_map))
1484 cpu_relax(); 1485 cpu_relax();
1486
1487#ifdef CONFIG_X86_GENERICARCH
1488 if (num_online_cpus() > 8 && genapic == &apic_default)
1489 panic("Default flat APIC routing can't be used with > 8 cpus\n");
1490#endif
1491
1485 return 0; 1492 return 0;
1486} 1493}
1487 1494