diff options
-rw-r--r-- | arch/x86/kernel/microcode_core.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c index 63a956865022..706a5c9b8eb2 100644 --- a/arch/x86/kernel/microcode_core.c +++ b/arch/x86/kernel/microcode_core.c | |||
@@ -369,13 +369,10 @@ static void microcode_fini_cpu(int cpu) | |||
369 | 369 | ||
370 | static enum ucode_state microcode_resume_cpu(int cpu) | 370 | static enum ucode_state microcode_resume_cpu(int cpu) |
371 | { | 371 | { |
372 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; | ||
373 | |||
374 | if (!uci->mc) | ||
375 | return UCODE_NFOUND; | ||
376 | |||
377 | pr_debug("CPU%d updated upon resume\n", cpu); | 372 | pr_debug("CPU%d updated upon resume\n", cpu); |
378 | apply_microcode_on_target(cpu); | 373 | |
374 | if (apply_microcode_on_target(cpu)) | ||
375 | return UCODE_ERROR; | ||
379 | 376 | ||
380 | return UCODE_OK; | 377 | return UCODE_OK; |
381 | } | 378 | } |
@@ -404,14 +401,11 @@ static enum ucode_state microcode_init_cpu(int cpu) | |||
404 | static enum ucode_state microcode_update_cpu(int cpu) | 401 | static enum ucode_state microcode_update_cpu(int cpu) |
405 | { | 402 | { |
406 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; | 403 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; |
407 | enum ucode_state ustate; | ||
408 | 404 | ||
409 | if (uci->valid) | 405 | if (uci->valid) |
410 | ustate = microcode_resume_cpu(cpu); | 406 | return microcode_resume_cpu(cpu); |
411 | else | ||
412 | ustate = microcode_init_cpu(cpu); | ||
413 | 407 | ||
414 | return ustate; | 408 | return microcode_init_cpu(cpu); |
415 | } | 409 | } |
416 | 410 | ||
417 | static int mc_device_add(struct device *dev, struct subsys_interface *sif) | 411 | static int mc_device_add(struct device *dev, struct subsys_interface *sif) |