void __init default_setup_apic_routing(void) { int version = apic_version[boot_cpu_physical_apicid]; if (num_possible_cpus() > 8) { switch (boot_cpu_data.x86_vendor) { case X86_VENDOR_INTEL: if (!APIC_XAPIC(version)) { def_to_bigsmp = 0; break; } /* If P4 and above fall through */ case X86_VENDOR_AMD: def_to_bigsmp = 1; } } #ifdef CONFIG_X86_BIGSMP /* * This is used to switch to bigsmp mode when * - There is no apic= option specified by the user * - generic_apic_probe() has chosen apic_default as the sub_arch * - we find more than 8 CPUs in acpi LAPIC listing with xAPIC support */ if (!cmdline_apic && apic == &apic_default) generic_bigsmp_probe(); #endif if (apic->setup_apic_routing) apic->setup_apic_routing(); if (x86_platform.apic_post_init) x86_platform.apic_post_init(); }
void __init default_setup_apic_routing(void) { int version = apic_version[boot_cpu_physical_apicid]; if (num_possible_cpus() > 8) { switch (boot_cpu_data.x86_vendor) { case X86_VENDOR_INTEL: if (!APIC_XAPIC(version)) { def_to_bigsmp = 0; break; } case X86_VENDOR_AMD: def_to_bigsmp = 1; } } #ifdef CONFIG_X86_BIGSMP if (!cmdline_apic && apic == &apic_default) generic_bigsmp_probe(); #endif if (apic->setup_apic_routing) apic->setup_apic_routing(); }
static void __init acpi_process_madt(void) { #ifdef CONFIG_X86_LOCAL_APIC int error; if (!acpi_table_parse(ACPI_SIG_MADT, acpi_parse_madt)) { /* * Parse MADT LAPIC entries */ error = acpi_parse_madt_lapic_entries(); if (!error) { acpi_lapic = 1; generic_bigsmp_probe(); /* * Parse MADT IO-APIC entries */ error = acpi_parse_madt_ioapic_entries(); if (!error) { acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC; acpi_irq_balance_set(NULL); acpi_ioapic = 1; smp_found_config = 1; clustered_apic_check(); } } if (error == -EINVAL) { /* * Dell Precision Workstation 410, 610 come here. */ printk(KERN_ERR PREFIX "Invalid BIOS MADT, disabling ACPI\n"); disable_acpi(); } } #endif return; }