Re: [PATCH][2.5] Honour dont_enable_local_apic flag

From: Zwane Mwaikambo (zwane@linuxpower.ca)
Date: Mon Jun 02 2003 - 11:20:00 EST


On Mon, 2 Jun 2003 mikpe@csd.uu.se wrote:

> Looks good to me. Add a __setup to set dont_enable_local_apic and this
> should be sufficient for users of severely broken HW or emulations.

This should do it then;

Thanks,
        Zwane

Index: linux-2.5/Documentation/kernel-parameters.txt
===================================================================
RCS file: /home/cvs/linux-2.5/Documentation/kernel-parameters.txt,v
retrieving revision 1.36
diff -u -p -B -r1.36 kernel-parameters.txt
--- linux-2.5/Documentation/kernel-parameters.txt 2 Jun 2003 02:49:19 -0000 1.36
+++ linux-2.5/Documentation/kernel-parameters.txt 2 Jun 2003 15:20:46 -0000
@@ -624,6 +624,9 @@ running once the system is up.
 
         nointroute [IA-64]
 
+ nolapic [IA-32, APIC]
+ Disable Local APIC.
+
         nomce [IA-32] Machine Check Exception
 
         noresume [SWSUSP] Disables resume and restore original swap space.
Index: linux-2.5/arch/i386/kernel/apic.c
===================================================================
RCS file: /home/cvs/linux-2.5/arch/i386/kernel/apic.c,v
retrieving revision 1.54
diff -u -p -B -r1.54 apic.c
--- linux-2.5/arch/i386/kernel/apic.c 31 May 2003 19:01:05 -0000 1.54
+++ linux-2.5/arch/i386/kernel/apic.c 2 Jun 2003 15:20:47 -0000
@@ -602,6 +602,14 @@ static void apic_pm_activate(void) { }
  */
 int dont_enable_local_apic __initdata = 0;
 
+static int __init nolapic_setup(char *str)
+{
+ dont_enable_local_apic = 1;
+ return 1;
+}
+
+__setup("nolapic", nolapic_setup);
+
 static int __init detect_init_APIC (void)
 {
         u32 h, l, features;
@@ -609,7 +617,7 @@ static int __init detect_init_APIC (void
 
         /* Disabled by DMI scan or kernel option? */
         if (dont_enable_local_apic)
- return -1;
+ goto no_apic;
 
         /* Workaround for us being called before identify_cpu(). */
         get_cpu_vendor(&boot_cpu_data);
@@ -665,6 +673,7 @@ static int __init detect_init_APIC (void
         return 0;
 
 no_apic:
+ clear_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability);
         printk("No local APIC present or hardware disabled\n");
         return -1;
 }

-- 
function.linuxpower.ca
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jun 07 2003 - 22:00:17 EST