Re: [PATCH][2.5] Honour dont_enable_local_apic flag

Zwane Mwaikambo (zwane@linuxpower.ca)
Mon, 2 Jun 2003 12:20:00 -0400 (EDT)


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/