[PATCH] x86-64/i386: Don't process APICs/IO-APICs in ACPI when APIC is disabled.
When nolapic was passed or the local APIC was disabled for another reason ACPI would still parse the IO-APICs until these were explicitely disabled with noapic. Usually this resulted in a non booting configuration unless "nolapic noapic" was used. I also disabled the local APIC parsing in this case, although that's only cosmetic (suppresses a few printks) This hopefully makes nolapic work in all cases. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
ec0f08eeea
commit
d3b6a349d2
|
@ -215,7 +215,7 @@ static int __init acpi_parse_madt(unsigned long phys_addr, unsigned long size)
|
||||||
{
|
{
|
||||||
struct acpi_table_madt *madt = NULL;
|
struct acpi_table_madt *madt = NULL;
|
||||||
|
|
||||||
if (!phys_addr || !size)
|
if (!phys_addr || !size || !cpu_has_apic)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size);
|
madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size);
|
||||||
|
@ -751,6 +751,9 @@ static int __init acpi_parse_madt_ioapic_entries(void)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!cpu_has_apic)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* if "noapic" boot option, don't look for IO-APICs
|
* if "noapic" boot option, don't look for IO-APICs
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue