summaryrefslogtreecommitdiffstats
path: root/x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch')
-rw-r--r--x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch b/x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
new file mode 100644
index 000000000..93887f247
--- /dev/null
+++ b/x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
@@ -0,0 +1,55 @@
+From: Borislav Petkov <bp@alien8.de>
+Date: Sat, 1 Nov 2014 11:01:00 +0100
+Subject: [PATCH] x86, microcode, AMD: Fix early ucode loading on 32-bit
+
+Hi guys,
+
+please queue this for the next batch to Linus.
+
+Thanks.
+---
+ arch/x86/kernel/cpu/microcode/amd_early.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/arch/x86/kernel/cpu/microcode/amd_early.c b/arch/x86/kernel/cpu/microcode/amd_early.c
+index 7aa1acc79789..8b75f7050129 100644
+--- a/arch/x86/kernel/cpu/microcode/amd_early.c
++++ b/arch/x86/kernel/cpu/microcode/amd_early.c
+@@ -348,6 +348,7 @@ int __init save_microcode_in_initrd_amd(void)
+ {
+ unsigned long cont;
+ enum ucode_state ret;
++ u8 *cont_va;
+ u32 eax;
+
+ if (!container)
+@@ -355,13 +356,15 @@ int __init save_microcode_in_initrd_amd(void)
+
+ #ifdef CONFIG_X86_32
+ get_bsp_sig();
+- cont = (unsigned long)container;
++ cont = (unsigned long)container;
++ cont_va = __va(container);
+ #else
+ /*
+ * We need the physical address of the container for both bitness since
+ * boot_params.hdr.ramdisk_image is a physical address.
+ */
+- cont = __pa(container);
++ cont = __pa(container);
++ cont_va = container;
+ #endif
+
+ /*
+@@ -372,6 +375,8 @@ int __init save_microcode_in_initrd_amd(void)
+ if (relocated_ramdisk)
+ container = (u8 *)(__va(relocated_ramdisk) +
+ (cont - boot_params.hdr.ramdisk_image));
++ else
++ container = cont_va;
+
+ if (ucode_new_rev)
+ pr_info("microcode: updated early to new patch_level=0x%08x\n",
+--
+1.9.3
+