diff options
| -rw-r--r-- | arch/x86/kernel/microcode_intel.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c index 3ca42d0e43a2..0327e2b3c408 100644 --- a/arch/x86/kernel/microcode_intel.c +++ b/arch/x86/kernel/microcode_intel.c | |||
| @@ -147,12 +147,6 @@ static int collect_cpu_info(int cpu_num, struct cpu_signature *csig) | |||
| 147 | 147 | ||
| 148 | memset(csig, 0, sizeof(*csig)); | 148 | memset(csig, 0, sizeof(*csig)); |
| 149 | 149 | ||
| 150 | if (c->x86_vendor != X86_VENDOR_INTEL || c->x86 < 6 || | ||
| 151 | cpu_has(c, X86_FEATURE_IA64)) { | ||
| 152 | pr_err("CPU%d not a capable Intel processor\n", cpu_num); | ||
| 153 | return -1; | ||
| 154 | } | ||
| 155 | |||
| 156 | csig->sig = cpuid_eax(0x00000001); | 150 | csig->sig = cpuid_eax(0x00000001); |
| 157 | 151 | ||
| 158 | if ((c->x86_model >= 5) || (c->x86 > 6)) { | 152 | if ((c->x86_model >= 5) || (c->x86 > 6)) { |
| @@ -463,6 +457,14 @@ static struct microcode_ops microcode_intel_ops = { | |||
| 463 | 457 | ||
| 464 | struct microcode_ops * __init init_intel_microcode(void) | 458 | struct microcode_ops * __init init_intel_microcode(void) |
| 465 | { | 459 | { |
| 460 | struct cpuinfo_x86 *c = &cpu_data(0); | ||
| 461 | |||
| 462 | if (c->x86_vendor != X86_VENDOR_INTEL || c->x86 < 6 || | ||
| 463 | cpu_has(c, X86_FEATURE_IA64)) { | ||
| 464 | pr_err("Intel CPU family 0x%x not supported\n", c->x86); | ||
| 465 | return NULL; | ||
| 466 | } | ||
| 467 | |||
| 466 | return µcode_intel_ops; | 468 | return µcode_intel_ops; |
| 467 | } | 469 | } |
| 468 | 470 | ||
