diff options
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r-- | arch/x86/kernel/acpi/boot.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/apic/apic_numachip.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/apic/x2apic_cluster.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/apic/x2apic_phys.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/apic/x2apic_uv_x.c | 7 |
5 files changed, 10 insertions, 6 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 406ed77216d0..0f42c2f44311 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
@@ -239,7 +239,7 @@ acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned long end) | |||
239 | * to not preallocating memory for all NR_CPUS | 239 | * to not preallocating memory for all NR_CPUS |
240 | * when we use CPU hotplug. | 240 | * when we use CPU hotplug. |
241 | */ | 241 | */ |
242 | if (!cpu_has_x2apic && (apic_id >= 0xff) && enabled) | 242 | if (!apic->apic_id_valid(apic_id) && enabled) |
243 | printk(KERN_WARNING PREFIX "x2apic entry ignored\n"); | 243 | printk(KERN_WARNING PREFIX "x2apic entry ignored\n"); |
244 | else | 244 | else |
245 | acpi_register_lapic(apic_id, enabled); | 245 | acpi_register_lapic(apic_id, enabled); |
diff --git a/arch/x86/kernel/apic/apic_numachip.c b/arch/x86/kernel/apic/apic_numachip.c index d9ea5f331ac5..899803e03214 100644 --- a/arch/x86/kernel/apic/apic_numachip.c +++ b/arch/x86/kernel/apic/apic_numachip.c | |||
@@ -229,11 +229,10 @@ static int __init numachip_system_init(void) | |||
229 | } | 229 | } |
230 | early_initcall(numachip_system_init); | 230 | early_initcall(numachip_system_init); |
231 | 231 | ||
232 | static int __cpuinit numachip_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 232 | static int numachip_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
233 | { | 233 | { |
234 | if (!strncmp(oem_id, "NUMASC", 6)) { | 234 | if (!strncmp(oem_id, "NUMASC", 6)) { |
235 | numachip_system = 1; | 235 | numachip_system = 1; |
236 | setup_force_cpu_cap(X86_FEATURE_X2APIC); | ||
237 | return 1; | 236 | return 1; |
238 | } | 237 | } |
239 | 238 | ||
diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c index 9193713060a9..48f3103b3c93 100644 --- a/arch/x86/kernel/apic/x2apic_cluster.c +++ b/arch/x86/kernel/apic/x2apic_cluster.c | |||
@@ -213,7 +213,7 @@ static struct apic apic_x2apic_cluster = { | |||
213 | .name = "cluster x2apic", | 213 | .name = "cluster x2apic", |
214 | .probe = x2apic_cluster_probe, | 214 | .probe = x2apic_cluster_probe, |
215 | .acpi_madt_oem_check = x2apic_acpi_madt_oem_check, | 215 | .acpi_madt_oem_check = x2apic_acpi_madt_oem_check, |
216 | .apic_id_valid = default_apic_id_valid, | 216 | .apic_id_valid = x2apic_apic_id_valid, |
217 | .apic_id_registered = x2apic_apic_id_registered, | 217 | .apic_id_registered = x2apic_apic_id_registered, |
218 | 218 | ||
219 | .irq_delivery_mode = dest_LowestPrio, | 219 | .irq_delivery_mode = dest_LowestPrio, |
diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c index bcd1db6eaca9..8a778db45e3a 100644 --- a/arch/x86/kernel/apic/x2apic_phys.c +++ b/arch/x86/kernel/apic/x2apic_phys.c | |||
@@ -119,7 +119,7 @@ static struct apic apic_x2apic_phys = { | |||
119 | .name = "physical x2apic", | 119 | .name = "physical x2apic", |
120 | .probe = x2apic_phys_probe, | 120 | .probe = x2apic_phys_probe, |
121 | .acpi_madt_oem_check = x2apic_acpi_madt_oem_check, | 121 | .acpi_madt_oem_check = x2apic_acpi_madt_oem_check, |
122 | .apic_id_valid = default_apic_id_valid, | 122 | .apic_id_valid = x2apic_apic_id_valid, |
123 | .apic_id_registered = x2apic_apic_id_registered, | 123 | .apic_id_registered = x2apic_apic_id_registered, |
124 | 124 | ||
125 | .irq_delivery_mode = dest_Fixed, | 125 | .irq_delivery_mode = dest_Fixed, |
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index fc4771425852..87bfa69e216e 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c | |||
@@ -266,6 +266,11 @@ static void uv_send_IPI_all(int vector) | |||
266 | uv_send_IPI_mask(cpu_online_mask, vector); | 266 | uv_send_IPI_mask(cpu_online_mask, vector); |
267 | } | 267 | } |
268 | 268 | ||
269 | static int uv_apic_id_valid(int apicid) | ||
270 | { | ||
271 | return 1; | ||
272 | } | ||
273 | |||
269 | static int uv_apic_id_registered(void) | 274 | static int uv_apic_id_registered(void) |
270 | { | 275 | { |
271 | return 1; | 276 | return 1; |
@@ -351,7 +356,7 @@ static struct apic __refdata apic_x2apic_uv_x = { | |||
351 | .name = "UV large system", | 356 | .name = "UV large system", |
352 | .probe = uv_probe, | 357 | .probe = uv_probe, |
353 | .acpi_madt_oem_check = uv_acpi_madt_oem_check, | 358 | .acpi_madt_oem_check = uv_acpi_madt_oem_check, |
354 | .apic_id_valid = default_apic_id_valid, | 359 | .apic_id_valid = uv_apic_id_valid, |
355 | .apic_id_registered = uv_apic_id_registered, | 360 | .apic_id_registered = uv_apic_id_registered, |
356 | 361 | ||
357 | .irq_delivery_mode = dest_Fixed, | 362 | .irq_delivery_mode = dest_Fixed, |