x86/microcode/amd: Do not overwrite final patch levels
authorBorislav Petkov <bp@suse.de>
Mon, 12 Oct 2015 09:22:42 +0000 (11:22 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 15 Jun 2016 20:28:10 +0000 (21:28 +0100)
commit6d07d5b07fc9d981702944be85f3b75224d12b5c
treeac985f0bf1d3a70912182f47e0f240a9f64e0f82
parentc908303c3dc140d91847eed8ccaaed7736cef884
x86/microcode/amd: Do not overwrite final patch levels

commit 0399f73299f1b7e04de329050f7111b362b7eeb5 upstream.

A certain number of patch levels of applied microcode should not
be overwritten by the microcode loader, otherwise bad things
will happen.

Check those and abort update if the current core has one of
those final patch levels applied by the BIOS. 32-bit needs
special handling, of course.

See https://bugzilla.suse.com/show_bug.cgi?id=913996 for more
info.

Tested-by: Peter Kirchge├čner <pkirchgessner@t-online.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Borislav Petkov <bp@alien8.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/1444641762-9437-7-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
arch/x86/include/asm/microcode.h
arch/x86/kernel/microcode_amd.c