Skip to contentSkip to conversation

x86: use setup_clear_cpu_cap with disable_apic

PATCH Applied Yinghai Lu 2 participants 5 messages Jul 21, 2008 x86

lore
Share & tools
lore

Yinghai Lu

author
#0 lore raw

PATCH 1/1 x86: use setup_clear_cpu_cap with disable_apic

so don't need to call clear_cpu_cap again in early_identify_cpu, and could use cleared_cpu_caps like other setup clear.

---
 arch/x86/kernel/apic_32.c       |    5 +----
 arch/x86/kernel/apic_64.c       |    2 +-
 arch/x86/kernel/cpu/common_64.c |    4 ----
 3 files changed, 2 insertions(+), 9 deletions(-)
arch/x86/kernel/apic_32.c +1 -4
Index: linux-2.6/arch/x86/kernel/apic_32.c
===================================================================
@@ -1251,9 +1251,6 @@ int apic_version[MAX_APICS];
 
 int __init APIC_init_uniprocessor(void)
 {
-	if (disable_apic)
-		clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC);
-
 	if (!smp_found_config && !cpu_has_apic)
 		return -1;
 
@@ -1737,7 +1734,7 @@ early_param("lapic", parse_lapic);
 static int __init parse_nolapic(char *arg)
 {
 	disable_apic = 1;
-	clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC);
+	setup_clear_cpu_cap(X86_FEATURE_APIC);
 	return 0;
 }
 early_param("nolapic", parse_nolapic);
arch/x86/kernel/apic_64.c +1 -1
Index: linux-2.6/arch/x86/kernel/apic_64.c
===================================================================
@@ -1556,7 +1556,7 @@ early_param("apic", apic_set_verbosity);
 static __init int setup_disableapic(char *str)
 {
 	disable_apic = 1;
-	clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC);
+	setup_clear_cpu_cap(X86_FEATURE_APIC);
 	return 0;
 }
 early_param("disableapic", setup_disableapic);
arch/x86/kernel/cpu/common_64.c +0 -4
Index: linux-2.6/arch/x86/kernel/cpu/common_64.c
===================================================================
@@ -319,10 +319,6 @@ static void __cpuinit early_identify_cpu
 		cpu_devs[c->x86_vendor]->c_early_init(c);
 
 	validate_pat_support(c);
-
-	/* early_param could clear that, but recall get it set again */
-	if (disable_apic)
-		clear_cpu_cap(c, X86_FEATURE_APIC);
 }
 
 /*
author
#1 lore raw

PATCH 1/1 x86: remove extra calling to get ext cpuid level

---
 arch/x86/kernel/cpu/common_64.c |    1 -
 1 file changed, 1 deletion(-)
arch/x86/kernel/cpu/common_64.c +0 -1
Index: linux-2.6/arch/x86/kernel/cpu/common_64.c
===================================================================
@@ -303,7 +303,6 @@ static void __cpuinit early_identify_cpu
 			c->x86_capability[2] = cpuid_edx(0x80860001);
 	}
 
-	c->extended_cpuid_level = cpuid_eax(0x80000000);
 	if (c->extended_cpuid_level >= 0x80000007)
 		c->x86_power = cpuid_edx(0x80000007);
 
Applied
#2 lore raw

Re: [PATCH] x86: remove extra calling to get ext cpuid level

arch/x86/kernel/cpu/common_64.c static void __cpuinit early_identify_cpu · line 307

Quoted 9 lines · Yinghai Lu
arch/x86/kernel/cpu/common_64.c +0 -1
@@ -303,7 +303,6 @@ static void __cpuinit early_identify_cpu
 			c->x86_capability[2] = cpuid_edx(0x80860001);
 	}
 
-	c->extended_cpuid_level = cpuid_eax(0x80000000);
 	if (c->extended_cpuid_level >= 0x80000007)
 		c->x86_power = cpuid_edx(0x80000007);

applied to tip/x86/core, thanks.

Ingo

Applied
#3 lore raw
In reply to Yinghai Lu
Quoted 2 lines · Yinghai Lu

so don't need to call clear_cpu_cap again in early_identify_cpu, and could use cleared_cpu_caps like other setup clear.

applied to tip/x86/core, thanks Yinghai.

Ingo

author
#4 lore raw

PATCH 1/1 x86: use setup_clear_cpu_cap with disable_apic -fix

In reply to Yinghai Lu
---
 arch/x86/kernel/setup.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/kernel/setup.c +1 -1
Index: linux-2.6/arch/x86/kernel/setup.c
===================================================================
@@ -680,7 +680,7 @@ void __init setup_arch(char **cmdline_p)
 #ifdef CONFIG_X86_LOCAL_APIC
 		disable_apic = 1;
 #endif
-		clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC);
+		setup_clear_cpu_cap(X86_FEATURE_APIC);
 	}
 
 #ifdef CONFIG_PCI