Patch "x86/microcode/AMD: Fix more fallout from CONFIG_RANDOMIZE_MEMORY=y" has been added to the 4.8-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
x86/microcode/AMD: Fix more fallout from CONFIG_RANDOMIZE_MEMORY=y
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
x86-microcode-amd-fix-more-fallout-from-config_randomize_memory-y.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
1c27f646b18fb56308dff82784ca61951bad0b48Mon Sep 17 00:00:00 2001
From: Borislav Petkov <[email protected]>
Date: Thu, 27 Oct 2016 14:36:23 +0200
Subject: x86/microcode/AMD: Fix more fallout from CONFIG_RANDOMIZE_MEMORY=y
From: Borislav Petkov <[email protected]>
commit 1c27f646b18fb56308dff82784ca61951bad0b48 upstream.
We needed the physical address of the container in order to compute the offset within the relocated ramdisk. And we did this by doing __pa() on the virtual address.
However, __pa() does checks whether the physical address is within PAGE_OFFSET and __START_KERNEL_map - see __phys_addr() - which fail if we have CONFIG_RANDOMIZE_MEMORY enabled: we feed a virtual address which *doesn't* have the randomization offset into a function which uses PAGE_OFFSET which *does* have that offset.
This makes this check fire:
VIRTUAL_BUG_ON((x > y) || !phys_addr_valid(x)); ^^^^^^
due to the randomization offset.
The fix is as simple as using __pa_nodebug() because we do that randomization offset accounting later in that function ourselves.
--- arch/x86/kernel/cpu/microcode/amd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/kernel/cpu/microcode/amd.c +1 -1
@@ -429,7 +429,7 @@ int __init save_microcode_in_initrd_amd(* 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_nodebug (container); cont_va = container;#endif
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/x86-microcode-amd-fix-more-fallout-from-config_randomize_memory-y.patch
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>