[PATCH 00/12] x86/microcode: Rework microcode loading

From: Borislav Petkov
Date: Tue Oct 25 2016 - 05:58:23 EST


From: Borislav Petkov <bp@xxxxxxx>

So this is something I've been meaning to do for a while now: cleanup
the Intel side of the microcode loader. But who has time?

Luckily (or not), CONFIG_RANDOMIZE_MEMORY came about and broke the
loader just enough so that I can finally force myself to go and clean it
all up, make it more robust.

So this is my attempt at it, the meat of the whole change is patch 11.
Which is unreadable as a diff to almost everyone, except to me, maybe :)
But it is the only way I could think of to do this without breaking the
driver knowingly. Oh, and staring at the code after the patch applied
makes it much clearer and nicer again anyway.

This pile has been tested on both AMD and Intel boxes of different
garden variety, with suspend to disk and to RAM and 32-bit and 64-bit.

Comments, suggestions and eventual pickup are appreciated :)

Thanks.

Borislav Petkov (12):
x86/microcode: Run the AP-loading routine only on the application
processors
x86/microcode: Move driver authors to CREDITS
x86/microcode/intel: Simplify generic_load_microcode()
x86/microcode: Remove one ifdef clause
x86/microcode: Export the microcode cache linked list
x86/microcode/AMD: Hand down the CPU family
x86/microcode: Issue the debug printk on resume only on success
x86/microcode: Collect CPU info on resume
x86/microcode/AMD: Retract functions
x86/microcode/intel: Remove intel_lib.c
x86/microcode: Rework microcode loading
x86/microcode: Bump driver version, update copyrights

CREDITS | 4 +
arch/x86/include/asm/microcode.h | 18 +-
arch/x86/include/asm/microcode_amd.h | 30 +-
arch/x86/include/asm/microcode_intel.h | 4 -
arch/x86/kernel/cpu/common.c | 7 +-
arch/x86/kernel/cpu/microcode/Makefile | 2 +-
arch/x86/kernel/cpu/microcode/amd.c | 421 ++++++++-------
arch/x86/kernel/cpu/microcode/core.c | 83 ++-
arch/x86/kernel/cpu/microcode/intel.c | 834 +++++++++++++-----------------
arch/x86/kernel/cpu/microcode/intel_lib.c | 184 -------
10 files changed, 647 insertions(+), 940 deletions(-)
delete mode 100644 arch/x86/kernel/cpu/microcode/intel_lib.c

--
2.10.0