|
@@ -147,12 +147,6 @@ static int collect_cpu_info(int cpu_num, struct cpu_signature *csig)
|
|
|
|
|
|
memset(csig, 0, sizeof(*csig));
|
|
|
|
|
|
- if (c->x86_vendor != X86_VENDOR_INTEL || c->x86 < 6 ||
|
|
|
- cpu_has(c, X86_FEATURE_IA64)) {
|
|
|
- pr_err("CPU%d not a capable Intel processor\n", cpu_num);
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
csig->sig = cpuid_eax(0x00000001);
|
|
|
|
|
|
if ((c->x86_model >= 5) || (c->x86 > 6)) {
|
|
@@ -463,6 +457,14 @@ static struct microcode_ops microcode_intel_ops = {
|
|
|
|
|
|
struct microcode_ops * __init init_intel_microcode(void)
|
|
|
{
|
|
|
+ struct cpuinfo_x86 *c = &cpu_data(0);
|
|
|
+
|
|
|
+ if (c->x86_vendor != X86_VENDOR_INTEL || c->x86 < 6 ||
|
|
|
+ cpu_has(c, X86_FEATURE_IA64)) {
|
|
|
+ pr_err("Intel CPU family 0x%x not supported\n", c->x86);
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+
|
|
|
return µcode_intel_ops;
|
|
|
}
|
|
|
|