|
@@ -801,14 +801,12 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
|
|
|
memset(&c->x86_capability, 0, sizeof c->x86_capability);
|
|
|
c->extended_cpuid_level = 0;
|
|
|
|
|
|
- if (!have_cpuid_p())
|
|
|
- identify_cpu_without_cpuid(c);
|
|
|
-
|
|
|
/* cyrix could have cpuid enabled via c_identify()*/
|
|
|
if (have_cpuid_p()) {
|
|
|
cpu_detect(c);
|
|
|
get_cpu_vendor(c);
|
|
|
get_cpu_cap(c);
|
|
|
+ setup_force_cpu_cap(X86_FEATURE_CPUID);
|
|
|
|
|
|
if (this_cpu->c_early_init)
|
|
|
this_cpu->c_early_init(c);
|
|
@@ -818,6 +816,9 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
|
|
|
|
|
|
if (this_cpu->c_bsp_init)
|
|
|
this_cpu->c_bsp_init(c);
|
|
|
+ } else {
|
|
|
+ identify_cpu_without_cpuid(c);
|
|
|
+ setup_clear_cpu_cap(X86_FEATURE_CPUID);
|
|
|
}
|
|
|
|
|
|
setup_force_cpu_cap(X86_FEATURE_ALWAYS);
|