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) |
