summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/microcode/amd.c
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2017-01-20 21:29:49 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-01-23 10:02:48 +0100
commit8cc26e0b4c49246564f773edbbefa3d5dc91d56e (patch)
tree7f061816eed3b32013780686a9c00c8946892b79 /arch/x86/kernel/cpu/microcode/amd.c
parent3da9b41794590022d09caa345aaa7c812ac22971 (diff)
downloadlinux-stable-8cc26e0b4c49246564f773edbbefa3d5dc91d56e.tar.gz
linux-stable-8cc26e0b4c49246564f773edbbefa3d5dc91d56e.tar.bz2
linux-stable-8cc26e0b4c49246564f773edbbefa3d5dc91d56e.zip
x86/microcode/AMD: Use find_microcode_in_initrd()
Use the generic helper instead of semi-open-coding the procedure. Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/20170120202955.4091-11-bp@alien8.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/cpu/microcode/amd.c')
-rw-r--r--arch/x86/kernel/cpu/microcode/amd.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index 4cbfe70cf458..7727f278de58 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -337,17 +337,15 @@ void load_ucode_amd_ap(unsigned int cpuid_1_eax)
/* First AP hasn't cached it yet, go through the blob. */
if (!cont.data) {
- struct cpio_data cp = { NULL, 0, "" };
+ struct cpio_data cp;
if (cont.size == -1)
return;
reget:
if (!get_builtin_microcode(&cp, x86_family(cpuid_1_eax))) {
-#ifdef CONFIG_BLK_DEV_INITRD
- cp = find_cpio_data(ucode_path, (void *)initrd_start,
- initrd_end - initrd_start, NULL);
-#endif
+ cp = find_microcode_in_initrd(ucode_path, false);
+
if (!(cp.data && cp.size)) {
/*
* Mark it so that other APs do not scan again
@@ -401,13 +399,9 @@ int __init save_microcode_in_initrd_amd(unsigned int cpuid_1_eax)
if (!cont.data) {
if (IS_ENABLED(CONFIG_X86_32) && (cont.size != -1)) {
- struct cpio_data cp = { NULL, 0, "" };
-
-#ifdef CONFIG_BLK_DEV_INITRD
- cp = find_cpio_data(ucode_path, (void *)initrd_start,
- initrd_end - initrd_start, NULL);
-#endif
+ struct cpio_data cp;
+ cp = find_microcode_in_initrd(ucode_path, false);
if (!(cp.data && cp.size)) {
cont.size = -1;
return -EINVAL;