Messages in this thread | | | From | Borislav Petkov <> | Subject | [PATCH 00/16 v2] x86/microcode: 4.11 queue | Date | Fri, 20 Jan 2017 21:29:39 +0100 |
| |
From: Borislav Petkov <bp@suse.de>
Hi,
here's v2 incorporating all feedback from tglx. As a result, the final version has gotten even cleaner. To the point that I might even start sharing code between the Intel and AMD side. We'll see how ugly it gets.
Btw, 1/16 needs to go to tip/x86/urgent as it is another fix for the loading rework that went in in 4.10.
Please queue the rest for 4.11.
Thanks.
Changelog:
v1:
so this is more of a lessons-learned pile after the rewriting of the whole patch loading method and not caching addresses. It largely simplifies the loader - just look at the diffstat - without any functionality loss (I hope :-)). The driver is also very much readable now with unified, common paths where possible.
What is more, 6/13 reworks the whole AMD container parsing into much more readable separation of functionality and functions doing only one thing properly.
13/13 is also another nice simplification for the AP update path which looks almost straightforward in comparison with what we had before.
All has been tested on a lot of boxes and in different configurations:
* builtin vs initrd microcode * old microcode_ctl application method for Intel * "echo 1 > /sys/devices/system/cpu/microcode/reload" late method * CONFIG_RANDOMIZE_MEMORY
both on Intel and AMD machines.
Borislav Petkov (16): x86/microcode/intel: Drop stashed AP patch pointer optimization x86/MSR: Carve out bare minimum accessors x86/microcode: Convert to bare minimum MSR accessors x86/microcode/AMD: Clean up find_equiv_id() x86/microcode/AMD: Shorten function parameter's name x86/microcode/AMD: Extend the container struct x86/microcode/AMD: Rework container parsing x86/microcode: Decrease CPUID use x86/microcode/AMD: Get rid of global this_equiv_id x86/microcode/AMD: Use find_microcode_in_initrd() x86/microcode: Remove local vendor variable x86/microcode/AMD: Check patch level only on the BSP x86/microcode/AMD: Unify load_ucode_amd_ap() x86/microcode/AMD: Simplify saving from initrd x86/microcode/AMD: Remove AP scanning optimization x86/microcode/AMD: Remove struct cont_desc.eq_id
arch/x86/include/asm/apic.h | 2 +- arch/x86/include/asm/microcode.h | 9 +- arch/x86/include/asm/microcode_amd.h | 2 - arch/x86/include/asm/msr.h | 51 ++-- arch/x86/kernel/cpu/microcode/amd.c | 500 +++++++++++----------------------- arch/x86/kernel/cpu/microcode/core.c | 81 ++++-- arch/x86/kernel/cpu/microcode/intel.c | 9 +- 7 files changed, 250 insertions(+), 404 deletions(-)
-- 2.11.0
| |