|
@@ -53,16 +53,44 @@
|
|
|
# error SPURIOUS_APIC_VECTOR definition error
|
|
|
#endif
|
|
|
|
|
|
-/* Disable local APIC timer from the kernel commandline or via dmi quirk */
|
|
|
-static int disable_apic_timer __cpuinitdata;
|
|
|
+#ifdef CONFIG_X86_32
|
|
|
+/*
|
|
|
+ * Knob to control our willingness to enable the local APIC.
|
|
|
+ *
|
|
|
+ * +1=force-enable
|
|
|
+ */
|
|
|
+static int force_enable_local_apic;
|
|
|
+/*
|
|
|
+ * APIC command line parameters
|
|
|
+ */
|
|
|
+static int __init parse_lapic(char *arg)
|
|
|
+{
|
|
|
+ force_enable_local_apic = 1;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+early_param("lapic", parse_lapic);
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_X86_64
|
|
|
static int apic_calibrate_pmtmr __initdata;
|
|
|
-int disable_apic;
|
|
|
+static __init int setup_apicpmtimer(char *s)
|
|
|
+{
|
|
|
+ apic_calibrate_pmtmr = 1;
|
|
|
+ notsc_setup(NULL);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+__setup("apicpmtimer", setup_apicpmtimer);
|
|
|
+#endif
|
|
|
+
|
|
|
int disable_x2apic;
|
|
|
int x2apic;
|
|
|
-
|
|
|
/* x2apic enabled before OS handover */
|
|
|
int x2apic_preenabled;
|
|
|
|
|
|
+unsigned long mp_lapic_addr;
|
|
|
+int disable_apic;
|
|
|
+/* Disable local APIC timer from the kernel commandline or via dmi quirk */
|
|
|
+static int disable_apic_timer __cpuinitdata;
|
|
|
/* Local APIC timer works in C2 */
|
|
|
int local_apic_timer_c2_ok;
|
|
|
EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok);
|
|
@@ -113,8 +141,6 @@ static DEFINE_PER_CPU(struct clock_event_device, lapic_events);
|
|
|
|
|
|
static unsigned long apic_phys;
|
|
|
|
|
|
-unsigned long mp_lapic_addr;
|
|
|
-
|
|
|
/*
|
|
|
* Get the LAPIC version
|
|
|
*/
|
|
@@ -1858,16 +1884,6 @@ static int __init parse_nolapic_timer(char *arg)
|
|
|
}
|
|
|
early_param("nolapic_timer", parse_nolapic_timer);
|
|
|
|
|
|
-#ifdef CONFIG_X86_64
|
|
|
-static __init int setup_apicpmtimer(char *s)
|
|
|
-{
|
|
|
- apic_calibrate_pmtmr = 1;
|
|
|
- notsc_setup(NULL);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-__setup("apicpmtimer", setup_apicpmtimer);
|
|
|
-#endif
|
|
|
-
|
|
|
static int __init apic_set_verbosity(char *arg)
|
|
|
{
|
|
|
if (!arg) {
|