static int __init acpi_parse_madt(struct acpi_table_header *table) { struct acpi_table_madt *madt = NULL; if (!cpu_has_apic) return -EINVAL; madt = (struct acpi_table_madt *)table; if (!madt) { printk(KERN_WARNING PREFIX "Unable to map MADT\n"); return -ENODEV; } if (madt->address) { acpi_lapic_addr = (u64) madt->address; printk(KERN_DEBUG PREFIX "Local APIC address 0x%08x\n", madt->address); } default_acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id); return 0; }
static void __init jailhouse_x2apic_init(void) { #ifdef CONFIG_X86_X2APIC if (!x2apic_enabled()) return; /* * We do not have access to IR inside Jailhouse non-root cells. So * we have to run in physical mode. */ x2apic_phys = 1; /* * This will trigger the switch to apic_x2apic_phys. Empty OEM IDs * ensure that only this APIC driver picks up the call. */ default_acpi_madt_oem_check("", ""); #endif }