diff options
author | Torsten Kaiser <just.for.lkml@googlemail.com> | 2013-07-23 22:58:23 +0200 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-07-31 08:37:14 -0700 |
commit | d982057f631df04f8d78321084a1a71ca51f3364 (patch) | |
tree | f2836aacbf9e141d55e6c0254bee647d0bedb086 /arch | |
parent | f155b6303d938462aaa31a8c7d409f3ea9012713 (diff) | |
download | linux-d982057f631df04f8d78321084a1a71ca51f3364.tar.gz linux-d982057f631df04f8d78321084a1a71ca51f3364.tar.bz2 linux-d982057f631df04f8d78321084a1a71ca51f3364.zip |
x86, amd, microcode: Fix error path in apply_microcode_amd()
Return -1 (like Intels apply_microcode) when the loading fails, also
do not set the active microcode level on failure.
Signed-off-by: Torsten Kaiser <just.for.lkml@googlemail.com>
Link: http://lkml.kernel.org/r/20130723225823.2e4e7588@googlemail.com
Acked-by: Borislav Petkov <bp@suse.de>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/microcode_amd.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c index 47ebb1dbfbcb..7a0adb7ee433 100644 --- a/arch/x86/kernel/microcode_amd.c +++ b/arch/x86/kernel/microcode_amd.c @@ -220,12 +220,13 @@ int apply_microcode_amd(int cpu) return 0; } - if (__apply_microcode_amd(mc_amd)) + if (__apply_microcode_amd(mc_amd)) { pr_err("CPU%d: update failed for patch_level=0x%08x\n", cpu, mc_amd->hdr.patch_id); - else - pr_info("CPU%d: new patch_level=0x%08x\n", cpu, - mc_amd->hdr.patch_id); + return -1; + } + pr_info("CPU%d: new patch_level=0x%08x\n", cpu, + mc_amd->hdr.patch_id); uci->cpu_sig.rev = mc_amd->hdr.patch_id; c->microcode = mc_amd->hdr.patch_id; |