From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751123AbdAWJKK (ORCPT ); Mon, 23 Jan 2017 04:10:10 -0500 Received: from terminus.zytor.com ([65.50.211.136]:34456 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750959AbdAWJKH (ORCPT ); Mon, 23 Jan 2017 04:10:07 -0500 Date: Mon, 23 Jan 2017 01:09:52 -0800 From: tip-bot for Borislav Petkov Message-ID: Cc: hpa@zytor.com, linux-kernel@vger.kernel.org, mingo@kernel.org, tglx@linutronix.de, bp@suse.de Reply-To: mingo@kernel.org, hpa@zytor.com, linux-kernel@vger.kernel.org, bp@suse.de, tglx@linutronix.de In-Reply-To: <20170120202955.4091-7-bp@alien8.de> References: <20170120202955.4091-7-bp@alien8.de> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/mce] x86/microcode/AMD: Extend the container struct Git-Commit-ID: f454177f739e92620d84a1f42f91b03007a1cdd0 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: f454177f739e92620d84a1f42f91b03007a1cdd0 Gitweb: http://git.kernel.org/tip/f454177f739e92620d84a1f42f91b03007a1cdd0 Author: Borislav Petkov AuthorDate: Fri, 20 Jan 2017 21:29:45 +0100 Committer: Thomas Gleixner CommitDate: Mon, 23 Jan 2017 10:02:47 +0100 x86/microcode/AMD: Extend the container struct Make it into a container descriptor which is being passed around and stores important info like the matching container and the patch for the current CPU. Make it static too. Later patches will use this and thus get rid of a double container parsing. Signed-off-by: Borislav Petkov Reviewed-by: Thomas Gleixner Link: http://lkml.kernel.org/r/20170120202955.4091-7-bp@alien8.de Signed-off-by: Thomas Gleixner --- arch/x86/kernel/cpu/microcode/amd.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c index 1691f41..4e22383 100644 --- a/arch/x86/kernel/cpu/microcode/amd.c +++ b/arch/x86/kernel/cpu/microcode/amd.c @@ -42,11 +42,15 @@ static struct equiv_cpu_entry *equiv_cpu_table; /* * This points to the current valid container of microcode patches which we will - * save from the initrd/builtin before jettisoning its contents. + * save from the initrd/builtin before jettisoning its contents. @mc is the + * microcode patch we found to match. */ -struct container { - u8 *data; - size_t size; +static struct cont_desc { + struct microcode_amd *mc; + u32 psize; + u16 eq_id; + u8 *data; + size_t size; } cont; static u32 ucode_new_rev; @@ -113,9 +117,9 @@ static u16 find_equiv_id(struct equiv_cpu_entry *equiv_table, u32 sig) * table or 0 if none found. */ static u16 -find_proper_container(u8 *ucode, size_t size, struct container *ret_cont) +find_proper_container(u8 *ucode, size_t size, struct cont_desc *desc) { - struct container ret = { NULL, 0 }; + struct cont_desc ret = { 0 }; u32 eax, ebx, ecx, edx; struct equiv_cpu_entry *eq; int offset, left; @@ -158,7 +162,7 @@ find_proper_container(u8 *ucode, size_t size, struct container *ret_cont) */ left = ret.size - offset; - *ret_cont = ret; + *desc = ret; return eq_id; } @@ -213,11 +217,11 @@ static int __apply_microcode_amd(struct microcode_amd *mc) * Returns true if container found (sets @ret_cont), false otherwise. */ static bool apply_microcode_early_amd(void *ucode, size_t size, bool save_patch, - struct container *ret_cont) + struct cont_desc *desc) { u8 (*patch)[PATCH_MAX_SIZE]; u32 rev, *header, *new_rev; - struct container ret; + struct cont_desc ret; int offset, left; u16 eq_id = 0; u8 *data; @@ -270,8 +274,8 @@ static bool apply_microcode_early_amd(void *ucode, size_t size, bool save_patch, left -= offset; } - if (ret_cont) - *ret_cont = ret; + if (desc) + *desc = ret; return true; }