x86: use disable_apic in 32bit
authorYinghai Lu <yhlu.kernel@gmail.com>
Sun, 29 Jun 2008 07:06:37 +0000 (00:06 -0700)
committerIngo Molnar <mingo@elte.hu>
Tue, 8 Jul 2008 11:16:08 +0000 (13:16 +0200)
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>
arch/x86/kernel/apic_32.c
arch/x86/kernel/setup.c
include/asm-x86/apic.h

index 8fbad8ed0ebe481c286305de7bd5e75d8f954528..6dea8306d8c05c0303aac0e1c268facda83e74c1 100644 (file)
@@ -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;
 }
index 4716460607b4ad1172c64d5441c84e9cf945c7e0..fb318edd8bc6536a0ba14352eda1911d0d12f131 100644 (file)
@@ -598,11 +598,7 @@ 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);
        }
index 6ae6ae68d4cd2732ff14f0fe218376fcc90bbb48..a29807737d3d93b30356f59610bb1151a3cb4d4d 100644 (file)
@@ -40,11 +40,7 @@ extern int local_apic_timer_c2_ok;
 
 extern int ioapic_force;
 
-#ifdef CONFIG_X86_64
 extern int disable_apic;
-#else
-extern int enable_local_apic;
-#endif
 /*
  * Basic functions accessing APICs.
  */