Hi Greg, here are the upstream commits which are needed for the microcode loader on 3.18-stable. I'm testing on both 32- and 64-bit, AMD and Intel, just to be sure. This is 3.18-stable only, the others will follow as time allows. Here's the patchlist: 1. 2ef84b3bb97f ("x86, microcode, AMD: Do not use smp_processor_id() in preemtible context") 2. 47768626c6db ("x86, microcode, intel: Drop unused parameter") 3. a18a0f6850d4 ("x86, microcode: Don't initialize microcode code on paravirt") 4. fbae4ba8c4a3 ("x86, microcode: Reload microcode on resume") 5. 25cdb9c86826 ("x86/microcode/intel: Fish out the stashed microcode for the BSP") Between patches 4 and 5 you'll get a merge conflict which needs to be resolved like this: --- diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c index 789648324abb..15c29096136b 100644 --- a/arch/x86/kernel/cpu/microcode/core.c +++ b/arch/x86/kernel/cpu/microcode/core.c @@ -465,16 +465,8 @@ static void mc_bp_resume(void) if (uci->valid && uci->mc) microcode_ops->apply_microcode(cpu); -#ifdef CONFIG_X86_64 else if (!uci->mc) - /* - * We might resume and not have applied late microcode but still - * have a newer patch stashed from the early loader. We don't - * have it in uci->mc so we have to load it the same way we're - * applying patches early on the APs. - */ - load_ucode_ap(); -#endif + reload_early_microcode(); } static struct syscore_ops mc_syscore_ops = { -- Thanks and let me know if there's trouble and I need to do anything. -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. -- -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html