From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752104AbdATVqq (ORCPT ); Fri, 20 Jan 2017 16:46:46 -0500 Received: from mail.skyhub.de ([78.46.96.112]:33511 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753152AbdATUaA (ORCPT ); Fri, 20 Jan 2017 15:30:00 -0500 From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 00/16 v2] x86/microcode: 4.11 queue Date: Fri, 20 Jan 2017 21:29:39 +0100 Message-Id: <20170120202955.4091-1-bp@alien8.de> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Borislav Petkov 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