diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-29 09:06:37 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 13:16:08 +0200 |
commit | 914bebfad42c417b84bda8920a3073d236007fde (patch) | |
tree | 03706ce29f8787bf069320db54f37a2e7f333308 /arch | |
parent | x86: fix init_memory_mapping over boundary, v4 (diff) | |
download | linux-914bebfad42c417b84bda8920a3073d236007fde.tar.xz linux-914bebfad42c417b84bda8920a3073d236007fde.zip |
x86: use disable_apic in 32bit
change the enable_local_apic to static force_enable_local_apic for 32bit
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/apic_32.c | 15 | ||||
-rw-r--r-- | arch/x86/kernel/setup.c | 4 |
2 files changed, 8 insertions, 11 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c index 8fbad8ed0ebe..6dea8306d8c0 100644 --- a/arch/x86/kernel/apic_32.c +++ b/arch/x86/kernel/apic_32.c @@ -55,9 +55,10 @@ unsigned long mp_lapic_addr; /* * Knob to control our willingness to enable the local APIC. * - * -1=force-disable, +1=force-enable + * +1=force-enable */ -int enable_local_apic; +static int force_enable_local_apic; +int disable_apic; /* Local APIC timer verification ok */ static int local_apic_timer_verify_ok; @@ -1099,7 +1100,7 @@ static int __init detect_init_APIC(void) u32 h, l, features; /* Disabled by kernel option? */ - if (enable_local_apic < 0) + if (disable_apic) return -1; switch (boot_cpu_data.x86_vendor) { @@ -1122,7 +1123,7 @@ static int __init detect_init_APIC(void) * Over-ride BIOS and try to enable the local APIC only if * "lapic" specified. */ - if (enable_local_apic <= 0) { + if (!force_enable_local_apic) { printk(KERN_INFO "Local APIC disabled by BIOS -- " "you can enable it with \"lapic\"\n"); return -1; @@ -1208,7 +1209,7 @@ int apic_version[MAX_APICS]; int __init APIC_init_uniprocessor(void) { - if (enable_local_apic < 0) + if (disable_apic) clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC); if (!smp_found_config && !cpu_has_apic) @@ -1682,14 +1683,14 @@ static void apic_pm_activate(void) { } */ static int __init parse_lapic(char *arg) { - enable_local_apic = 1; + force_enable_local_apic = 1; return 0; } early_param("lapic", parse_lapic); static int __init parse_nolapic(char *arg) { - enable_local_apic = -1; + disable_apic = 1; clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC); return 0; } diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 4716460607b4..fb318edd8bc6 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -598,12 +598,8 @@ void __init setup_arch(char **cmdline_p) if (acpi_mps_check()) { #ifdef CONFIG_X86_LOCAL_APIC -#ifdef CONFIG_X86_32 - enable_local_apic = -1; -#else disable_apic = 1; #endif -#endif clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC); } |