x86/apic: Move x2apic code to one place
Having several disjunct pieces of code for x2apic support makes reading the code unnecessarily hard. Move it to one ifdeffed section. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Borislav Petkov <bp@alien8.de> Cc: Jiang Liu <jiang.liu@linux.intel.com> Cc: Joerg Roedel <joro@8bytes.org> Cc: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/20150115211702.445212133@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Родитель
81a46dd824
Коммит
bfb0507029
|
@ -134,9 +134,6 @@ static inline void imcr_apic_to_pic(void)
|
|||
*/
|
||||
static int force_enable_local_apic __initdata;
|
||||
|
||||
/* Control whether x2APIC mode is enabled or not */
|
||||
static bool nox2apic __initdata;
|
||||
|
||||
/*
|
||||
* APIC command line parameters
|
||||
*/
|
||||
|
@ -161,33 +158,6 @@ static __init int setup_apicpmtimer(char *s)
|
|||
__setup("apicpmtimer", setup_apicpmtimer);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_X86_X2APIC
|
||||
int x2apic_mode;
|
||||
/* x2apic enabled before OS handover */
|
||||
int x2apic_preenabled;
|
||||
static int x2apic_disabled;
|
||||
static int __init setup_nox2apic(char *str)
|
||||
{
|
||||
if (x2apic_enabled()) {
|
||||
int apicid = native_apic_msr_read(APIC_ID);
|
||||
|
||||
if (apicid >= 255) {
|
||||
pr_warning("Apicid: %08x, cannot enforce nox2apic\n",
|
||||
apicid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
pr_warning("x2apic already enabled. will disable it\n");
|
||||
} else
|
||||
setup_clear_cpu_cap(X86_FEATURE_X2APIC);
|
||||
|
||||
nox2apic = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_param("nox2apic", setup_nox2apic);
|
||||
#endif
|
||||
|
||||
unsigned long mp_lapic_addr;
|
||||
int disable_apic;
|
||||
/* Disable local APIC timer from the kernel commandline or via dmi quirk */
|
||||
|
@ -1504,7 +1474,35 @@ void __init bsp_end_local_APIC_setup(void)
|
|||
|
||||
}
|
||||
|
||||
/* Control whether x2APIC mode is enabled or not */
|
||||
static bool nox2apic __initdata;
|
||||
|
||||
#ifdef CONFIG_X86_X2APIC
|
||||
int x2apic_mode;
|
||||
/* x2apic enabled before OS handover */
|
||||
int x2apic_preenabled;
|
||||
static int x2apic_disabled;
|
||||
static int __init setup_nox2apic(char *str)
|
||||
{
|
||||
if (x2apic_enabled()) {
|
||||
int apicid = native_apic_msr_read(APIC_ID);
|
||||
|
||||
if (apicid >= 255) {
|
||||
pr_warning("Apicid: %08x, cannot enforce nox2apic\n",
|
||||
apicid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
pr_warning("x2apic already enabled. will disable it\n");
|
||||
} else
|
||||
setup_clear_cpu_cap(X86_FEATURE_X2APIC);
|
||||
|
||||
nox2apic = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_param("nox2apic", setup_nox2apic);
|
||||
|
||||
/*
|
||||
* Need to disable xapic and x2apic at the same time and then enable xapic mode
|
||||
*/
|
||||
|
|
Загрузка…
Ссылка в новой задаче