[tip:x86/mce] x86/microcode/AMD: Simplify saving from initrd

2017-01-23 Thread tip-bot for Borislav Petkov
Commit-ID:  72edfe950b36308353e27cdc02f334431239938a
Gitweb: http://git.kernel.org/tip/72edfe950b36308353e27cdc02f334431239938a
Author: Borislav Petkov 
AuthorDate: Fri, 20 Jan 2017 21:29:53 +0100
Committer:  Thomas Gleixner 
CommitDate: Mon, 23 Jan 2017 10:02:50 +0100

x86/microcode/AMD: Simplify saving from initrd

No need to use the previously stashed info in the container - simply go
ahead and parse the initrd once more. It simplifies and streamlines the
code a whole lot.

Signed-off-by: Borislav Petkov 
Reviewed-by: Thomas Gleixner 
Link: http://lkml.kernel.org/r/20170120202955.4091-15...@alien8.de
Signed-off-by: Thomas Gleixner 

---
 arch/x86/kernel/cpu/microcode/amd.c | 43 +++--
 1 file changed, 13 insertions(+), 30 deletions(-)

diff --git a/arch/x86/kernel/cpu/microcode/amd.c 
b/arch/x86/kernel/cpu/microcode/amd.c
index fe9e865..2a194e3 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -372,43 +372,26 @@ load_microcode_amd(int cpu, u8 family, const u8 *data, 
size_t size);
 
 int __init save_microcode_in_initrd_amd(unsigned int cpuid_1_eax)
 {
+   struct cont_desc desc = { 0 };
enum ucode_state ret;
-   int retval = 0;
-
-   if (!cont.data) {
-   if (IS_ENABLED(CONFIG_X86_32) && (cont.size != -1)) {
-   struct cpio_data cp;
-
-   cp = find_microcode_in_initrd(ucode_path, false);
-   if (!(cp.data && cp.size)) {
-   cont.size = -1;
-   return -EINVAL;
-   }
+   struct cpio_data cp;
 
-   cont.cpuid_1_eax = cpuid_1_eax;
+   cp = find_microcode_in_initrd(ucode_path, false);
+   if (!(cp.data && cp.size))
+   return -EINVAL;
 
-   scan_containers(cp.data, cp.size, );
-   if (!cont.eq_id) {
-   cont.size = -1;
-   return -EINVAL;
-   }
+   desc.cpuid_1_eax = cpuid_1_eax;
 
-   } else
-   return -EINVAL;
-   }
+   scan_containers(cp.data, cp.size, );
+   if (!desc.eq_id)
+   return -EINVAL;
 
-   ret = load_microcode_amd(smp_processor_id(), x86_family(cpuid_1_eax), 
cont.data, cont.size);
+   ret = load_microcode_amd(smp_processor_id(), x86_family(cpuid_1_eax),
+desc.data, desc.size);
if (ret != UCODE_OK)
-   retval = -EINVAL;
-
-   /*
-* This will be freed any msec now, stash patches for the current
-* family and switch to patch cache for cpu hotplug, etc later.
-*/
-   cont.data = NULL;
-   cont.size = 0;
+   return -EINVAL;
 
-   return retval;
+   return 0;
 }
 
 void reload_ucode_amd(void)


[tip:x86/mce] x86/microcode/AMD: Simplify saving from initrd

2017-01-23 Thread tip-bot for Borislav Petkov
Commit-ID:  72edfe950b36308353e27cdc02f334431239938a
Gitweb: http://git.kernel.org/tip/72edfe950b36308353e27cdc02f334431239938a
Author: Borislav Petkov 
AuthorDate: Fri, 20 Jan 2017 21:29:53 +0100
Committer:  Thomas Gleixner 
CommitDate: Mon, 23 Jan 2017 10:02:50 +0100

x86/microcode/AMD: Simplify saving from initrd

No need to use the previously stashed info in the container - simply go
ahead and parse the initrd once more. It simplifies and streamlines the
code a whole lot.

Signed-off-by: Borislav Petkov 
Reviewed-by: Thomas Gleixner 
Link: http://lkml.kernel.org/r/20170120202955.4091-15...@alien8.de
Signed-off-by: Thomas Gleixner 

---
 arch/x86/kernel/cpu/microcode/amd.c | 43 +++--
 1 file changed, 13 insertions(+), 30 deletions(-)

diff --git a/arch/x86/kernel/cpu/microcode/amd.c 
b/arch/x86/kernel/cpu/microcode/amd.c
index fe9e865..2a194e3 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -372,43 +372,26 @@ load_microcode_amd(int cpu, u8 family, const u8 *data, 
size_t size);
 
 int __init save_microcode_in_initrd_amd(unsigned int cpuid_1_eax)
 {
+   struct cont_desc desc = { 0 };
enum ucode_state ret;
-   int retval = 0;
-
-   if (!cont.data) {
-   if (IS_ENABLED(CONFIG_X86_32) && (cont.size != -1)) {
-   struct cpio_data cp;
-
-   cp = find_microcode_in_initrd(ucode_path, false);
-   if (!(cp.data && cp.size)) {
-   cont.size = -1;
-   return -EINVAL;
-   }
+   struct cpio_data cp;
 
-   cont.cpuid_1_eax = cpuid_1_eax;
+   cp = find_microcode_in_initrd(ucode_path, false);
+   if (!(cp.data && cp.size))
+   return -EINVAL;
 
-   scan_containers(cp.data, cp.size, );
-   if (!cont.eq_id) {
-   cont.size = -1;
-   return -EINVAL;
-   }
+   desc.cpuid_1_eax = cpuid_1_eax;
 
-   } else
-   return -EINVAL;
-   }
+   scan_containers(cp.data, cp.size, );
+   if (!desc.eq_id)
+   return -EINVAL;
 
-   ret = load_microcode_amd(smp_processor_id(), x86_family(cpuid_1_eax), 
cont.data, cont.size);
+   ret = load_microcode_amd(smp_processor_id(), x86_family(cpuid_1_eax),
+desc.data, desc.size);
if (ret != UCODE_OK)
-   retval = -EINVAL;
-
-   /*
-* This will be freed any msec now, stash patches for the current
-* family and switch to patch cache for cpu hotplug, etc later.
-*/
-   cont.data = NULL;
-   cont.size = 0;
+   return -EINVAL;
 
-   return retval;
+   return 0;
 }
 
 void reload_ucode_amd(void)