forked from Minki/linux
[PATCH] x86_64: Dont record local apic ids when they are disabled in MADT
Some broken BIOS's had processors disabled, but same apic id as a valid processor. This causes acpi_processor_start() to think this disabled cpu is ok, and croak. So we dont record bad apicid's anymore. http://bugzilla.kernel.org/show_bug.cgi?id=5930 Signed-off-by: Ashok Raj <ashok.raj@intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
d646bce4c7
commit
7f66ae48de
@ -248,10 +248,17 @@ acpi_parse_lapic(acpi_table_entry_header * header, const unsigned long end)
|
||||
|
||||
acpi_table_print_madt_entry(header);
|
||||
|
||||
/* Register even disabled CPUs for cpu hotplug */
|
||||
|
||||
x86_acpiid_to_apicid[processor->acpi_id] = processor->id;
|
||||
/* Record local apic id only when enabled */
|
||||
if (processor->flags.enabled)
|
||||
x86_acpiid_to_apicid[processor->acpi_id] = processor->id;
|
||||
|
||||
/*
|
||||
* We need to register disabled CPU as well to permit
|
||||
* counting disabled CPUs. This allows us to size
|
||||
* cpus_possible_map more accurately, to permit
|
||||
* to not preallocating memory for all NR_CPUS
|
||||
* when we use CPU hotplug.
|
||||
*/
|
||||
mp_register_lapic(processor->id, /* APIC ID */
|
||||
processor->flags.enabled); /* Enabled? */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user