Fix early ucode crash on 32-bit AMD machines (rhbz 1159592)
This commit is contained in:
parent
e241709556
commit
ba6e0133e0
|
@ -675,6 +675,9 @@ Patch26082: kvm-fix-excessive-pages-un-pinning-in-kvm_iommu_map-.patch
|
|||
#rhbz 1157327
|
||||
Patch26083: quirk-for-Lenovo-Yoga-3-no-rfkill-switch.patch
|
||||
|
||||
#rhbz 1159592
|
||||
Patch26084: x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
|
||||
|
||||
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
||||
Patch30000: kernel-arm64.patch
|
||||
|
||||
|
@ -1463,6 +1466,9 @@ ApplyPatch kvm-fix-excessive-pages-un-pinning-in-kvm_iommu_map-.patch
|
|||
#rhbz 1157327
|
||||
ApplyPatch quirk-for-Lenovo-Yoga-3-no-rfkill-switch.patch
|
||||
|
||||
#rhbz 1159592
|
||||
ApplyPatch x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
|
||||
|
||||
%if 0%{?aarch64patches}
|
||||
ApplyPatch kernel-arm64.patch
|
||||
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
||||
|
@ -2331,6 +2337,9 @@ fi
|
|||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Mon Nov 03 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Fix early ucode crash on 32-bit AMD machines (rhbz 1159592)
|
||||
|
||||
* Thu Oct 30 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.17.2-300
|
||||
- Linux v3.17.2
|
||||
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
From 4232c1bb6b7ed45b96d2112e6f151cf5c9c28470 Mon Sep 17 00:00:00 2001
|
||||
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 617a9e284245..65bdfb598880 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
|
||||
|
Loading…
Reference in New Issue