diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86_64/kernel/genapic.c | 9 |
1 files changed, 7 insertions, 2 deletions
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) | |||
104 | * (We don't use lowest priority delivery + HW APIC IRQ steering, so | 104 | * (We don't use lowest priority delivery + HW APIC IRQ steering, so |
105 | * can ignore the clustered logical case and go straight to physical.) | 105 | * can ignore the clustered logical case and go straight to physical.) |
106 | */ | 106 | */ |
107 | if (clusters <= 1 && max_cluster <= 8 && cluster_cnt[0] == max_cluster) | 107 | if (clusters <= 1 && max_cluster <= 8 && cluster_cnt[0] == max_cluster) { |
108 | #ifdef CONFIG_HOTPLUG_CPU | ||
109 | /* Don't use APIC shortcuts in CPU hotplug to avoid races */ | ||
110 | genapic = &apic_physflat; | ||
111 | #else | ||
108 | genapic = &apic_flat; | 112 | genapic = &apic_flat; |
109 | else | 113 | #endif |
114 | } else | ||
110 | genapic = &apic_cluster; | 115 | genapic = &apic_cluster; |
111 | 116 | ||
112 | print: | 117 | print: |