From: Andi Kleen Date: Mon, 12 Sep 2005 16:49:24 +0000 (+0200) Subject: [PATCH] x86-64: Use physflat on Intel for < 8 CPUs with CPU hotplug X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=5bf97e01192f0fcdff2f0e9eae063e7785f6f915;p=openwrt%2Fstaging%2Fblogic.git [PATCH] x86-64: Use physflat on Intel for < 8 CPUs with CPU hotplug This avoids races with the APIC broadcast/mask modes. Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds --- diff --git a/arch/x86_64/kernel/genapic.c b/arch/x86_64/kernel/genapic.c index fe416fd4dbe0..7a64ea181788 100644 --- a/arch/x86_64/kernel/genapic.c +++ b/arch/x86_64/kernel/genapic.c @@ -104,9 +104,14 @@ void __init clustered_apic_check(void) * (We don't use lowest priority delivery + HW APIC IRQ steering, so * can ignore the clustered logical case and go straight to physical.) */ - if (clusters <= 1 && max_cluster <= 8 && cluster_cnt[0] == max_cluster) + if (clusters <= 1 && max_cluster <= 8 && cluster_cnt[0] == max_cluster) { +#ifdef CONFIG_HOTPLUG_CPU + /* Don't use APIC shortcuts in CPU hotplug to avoid races */ + genapic = &apic_physflat; +#else genapic = &apic_flat; - else +#endif + } else genapic = &apic_cluster; print: