diff options
Diffstat (limited to 'arch/i386/kernel/acpi/boot.c')
-rw-r--r-- | arch/i386/kernel/acpi/boot.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index 033066176b3e..049a25583793 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c | |||
@@ -215,7 +215,7 @@ static int __init acpi_parse_madt(unsigned long phys_addr, unsigned long size) | |||
215 | { | 215 | { |
216 | struct acpi_table_madt *madt = NULL; | 216 | struct acpi_table_madt *madt = NULL; |
217 | 217 | ||
218 | if (!phys_addr || !size) | 218 | if (!phys_addr || !size || !cpu_has_apic) |
219 | return -EINVAL; | 219 | return -EINVAL; |
220 | 220 | ||
221 | madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size); | 221 | madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size); |
@@ -693,6 +693,9 @@ static int __init acpi_parse_madt_lapic_entries(void) | |||
693 | { | 693 | { |
694 | int count; | 694 | int count; |
695 | 695 | ||
696 | if (!cpu_has_apic) | ||
697 | return -ENODEV; | ||
698 | |||
696 | /* | 699 | /* |
697 | * Note that the LAPIC address is obtained from the MADT (32-bit value) | 700 | * Note that the LAPIC address is obtained from the MADT (32-bit value) |
698 | * and (optionally) overriden by a LAPIC_ADDR_OVR entry (64-bit value). | 701 | * and (optionally) overriden by a LAPIC_ADDR_OVR entry (64-bit value). |
@@ -751,6 +754,9 @@ static int __init acpi_parse_madt_ioapic_entries(void) | |||
751 | return -ENODEV; | 754 | return -ENODEV; |
752 | } | 755 | } |
753 | 756 | ||
757 | if (!cpu_has_apic) | ||
758 | return -ENODEV; | ||
759 | |||
754 | /* | 760 | /* |
755 | * if "noapic" boot option, don't look for IO-APICs | 761 | * if "noapic" boot option, don't look for IO-APICs |
756 | */ | 762 | */ |
@@ -1096,6 +1102,9 @@ int __init acpi_boot_table_init(void) | |||
1096 | dmi_check_system(acpi_dmi_table); | 1102 | dmi_check_system(acpi_dmi_table); |
1097 | #endif | 1103 | #endif |
1098 | 1104 | ||
1105 | if (!cpu_has_apic) | ||
1106 | return -ENODEV; | ||
1107 | |||
1099 | /* | 1108 | /* |
1100 | * If acpi_disabled, bail out | 1109 | * If acpi_disabled, bail out |
1101 | * One exception: acpi=ht continues far enough to enumerate LAPICs | 1110 | * One exception: acpi=ht continues far enough to enumerate LAPICs |