···5555/*5656 * Knob to control our willingness to enable the local APIC.5757 *5858- * -1=force-disable, +1=force-enable5858+ * +1=force-enable5959 */6060-int enable_local_apic;6060+static int force_enable_local_apic;6161+int disable_apic;61626263/* Local APIC timer verification ok */6364static int local_apic_timer_verify_ok;···11001099 u32 h, l, features;1101110011021101 /* Disabled by kernel option? */11031103- if (enable_local_apic < 0)11021102+ if (disable_apic)11041103 return -1;1105110411061105 switch (boot_cpu_data.x86_vendor) {···11231122 * Over-ride BIOS and try to enable the local APIC only if11241123 * "lapic" specified.11251124 */11261126- if (enable_local_apic <= 0) {11251125+ if (!force_enable_local_apic) {11271126 printk(KERN_INFO "Local APIC disabled by BIOS -- "11281127 "you can enable it with \"lapic\"\n");11291128 return -1;···1209120812101209int __init APIC_init_uniprocessor(void)12111210{12121212- if (enable_local_apic < 0)12111211+ if (disable_apic)12131212 clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC);1214121312151214 if (!smp_found_config && !cpu_has_apic)···16831682 */16841683static int __init parse_lapic(char *arg)16851684{16861686- enable_local_apic = 1;16851685+ force_enable_local_apic = 1;16871686 return 0;16881687}16891688early_param("lapic", parse_lapic);1690168916911690static int __init parse_nolapic(char *arg)16921691{16931693- enable_local_apic = -1;16921692+ disable_apic = 1;16941693 clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC);16951694 return 0;16961695}
···40404141extern int ioapic_force;42424343-#ifdef CONFIG_X86_644443extern int disable_apic;4545-#else4646-extern int enable_local_apic;4747-#endif4844/*4945 * Basic functions accessing APICs.5046 */