]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
x86: detect scattered cpuid features earlier
authorJacob Pan <jacob.jun.pan@linux.intel.com>
Wed, 19 May 2010 19:01:23 +0000 (12:01 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 29 Oct 2010 04:44:16 +0000 (21:44 -0700)
commit 1dedefd1a066a795a87afca9c0236e1a94de9bf6 upstream.

Some extra CPU features such as ARAT is needed in early boot so
that x86_init function pointers can be set up properly.
http://lkml.org/lkml/2010/5/18/519
At start_kernel() level, this patch moves init_scattered_cpuid_features()
from check_bugs() to setup_arch() -> early_cpu_init() which is earlier than
platform specific x86_init layer setup. Suggested by HPA.

Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
LKML-Reference: <1274295685-6774-2-git-send-email-jacob.jun.pan@linux.intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/cpu/common.c

index deb5b180653362e0caae9db249f6c54425caf64a..4e34d10b841f35a46e536acc962b177c29747ce4 100644 (file)
@@ -579,6 +579,7 @@ void __cpuinit get_cpu_cap(struct cpuinfo_x86 *c)
        if (c->extended_cpuid_level >= 0x80000007)
                c->x86_power = cpuid_edx(0x80000007);
 
+       init_scattered_cpuid_features(c);
 }
 
 static void __cpuinit identify_cpu_without_cpuid(struct cpuinfo_x86 *c)
@@ -727,7 +728,6 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
 
        get_model_name(c); /* Default name */
 
-       init_scattered_cpuid_features(c);
        detect_nopl(c);
 }