x86/microcode changes for v3.3
Linus,
Please pull the latest x86-microcode-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-microcode-for-linus
Thanks,
Ingo
------------------>
Borislav Petkov (5):
x86, microcode, AMD: Add a vendor-specific exit function x86, microcode, AMD: Add a reusable buffer x86, microcode, AMD: Simplify ucode verification x86, microcode, AMD: Exit early on success x86, microcode, AMD: Update copyrights
arch/x86/include/asm/microcode.h | 2 + arch/x86/kernel/microcode_amd.c | 209 +++++++++++++++++++++----------------- arch/x86/kernel/microcode_core.c | 5 + 3 files changed, 121 insertions(+), 95 deletions(-)
arch/x86/include/asm/microcode.h +2 -0
@@ -48,6 +48,7 @@ static inline struct microcode_ops * __init init_intel_microcode(void)#ifdef CONFIG_MICROCODE_AMD extern struct microcode_ops *__init init_amd_microcode (void ); +extern void __exit exit_amd_microcode(void);static inline void get_ucode_data (void *to,const u8 *from,size_t n) {
@@ -59,6 +60,7 @@ static inline struct microcode_ops * __init init_amd_microcode(void) {return NULL ; } +static inline void __exit exit_amd_microcode(void) {}#endif #endif /* _ASM_X86_MICROCODE_H */
arch/x86/kernel/microcode_amd.c +114 -95
298 lines not on this page · raw message
arch/x86/kernel/microcode_core.c +5 -0
@@ -563,6 +563,8 @@ module_init(microcode_init); static void __exit microcode_exit(void) { +struct cpuinfo_x86 *c = &cpu_data (0 ); +microcode_dev_exit ();unregister_hotcpu_notifier (&mc_cpu_notifier);
@@ -580,6 +582,9 @@ static void __exit microcode_exit(void) microcode_ops =NULL ; +if (c->x86_vendor ==X86_VENDOR_AMD ) +exit_amd_microcode (); +pr_info ("Microcode Update Driver: v" MICROCODE_VERSION " removed.\n" ); }module_exit (microcode_exit);