vserver 1.9.3
[linux-2.6.git] / arch / i386 / kernel / acpi / boot.c
index e54aefa..8a05362 100644 (file)
@@ -71,6 +71,7 @@ int acpi_ht __initdata = 1;   /* enable HT */
 int acpi_lapic;
 int acpi_ioapic;
 int acpi_strict;
+EXPORT_SYMBOL(acpi_strict);
 
 acpi_interrupt_flags acpi_sci_flags __initdata;
 int acpi_sci_override_gsi __initdata;
@@ -84,6 +85,11 @@ static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
 #warning ACPI uses CMPXCHG, i486 and later hardware
 #endif
 
+#define MAX_MADT_ENTRIES       256
+u8 x86_acpiid_to_apicid[MAX_MADT_ENTRIES] =
+                       { [0 ... MAX_MADT_ENTRIES-1] = 0xff };
+EXPORT_SYMBOL(x86_acpiid_to_apicid);
+
 /* --------------------------------------------------------------------------
                               Boot-time Configuration
    -------------------------------------------------------------------------- */
@@ -225,6 +231,8 @@ acpi_parse_lapic (
        if (processor->flags.enabled == 0)
                return 0;
 
+       x86_acpiid_to_apicid[processor->acpi_id] = processor->id;
+
        mp_register_lapic (
                processor->id,                                     /* APIC ID */
                processor->flags.enabled);                        /* Enabled? */
@@ -822,9 +830,15 @@ acpi_boot_init (void)
         */
        error = acpi_blacklisted();
        if (error) {
-               printk(KERN_WARNING PREFIX "BIOS listed in blacklist, disabling ACPI support\n");
-               disable_acpi();
-               return error;
+               extern int acpi_force;
+
+               if (acpi_force) {
+                       printk(KERN_WARNING PREFIX "acpi=force override\n");
+               } else {
+                       printk(KERN_WARNING PREFIX "Disabling ACPI support\n");
+                       disable_acpi();
+                       return error;
+               }
        }
 
        /*