Received: by 10.223.185.116 with SMTP id b49csp1570767wrg; Wed, 21 Feb 2018 22:35:46 -0800 (PST) X-Google-Smtp-Source: AH8x226OTU36N2REn5hnPKnJIjrPVxstTxFhwGIdzROZdzQ9Xx/FVFCl0LTRSOFIXT/xxpQnPHJG X-Received: by 10.98.253.17 with SMTP id p17mr5850237pfh.105.1519281345943; Wed, 21 Feb 2018 22:35:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519281345; cv=none; d=google.com; s=arc-20160816; b=HhGoRgV34w6gbrhhWkexw4DKezjcfTwpwzr4cQrALsU0ppN2VEqcGpCzXetJ2DsuJV mmn1yizVQQvGlfpGTzoOt4fnlvE1PmQd/mRLLTQFwc14i7OeZG6qdHVOGPqjwwBppW8S F2c3x3I9VTcU2EWWagAKTF09a7HVkz1xfzFZMz/yEgSKOKidKJflWgd7t4kDYe1JFMTt xWFXaG9W8S8R4WzbONyQnkmo6dGfQ9EFPXdDw4ZFOeXQem7I6Dd/A/a4hnFYLBDhurX7 h4e3FC7+aDqYUVoXzJqekHVhbkM38KrNNm1KaHND2c4zKRz0qGoe/kO4Vb+3g5hzDal4 CO9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=vV9l/hbe/036fQilj7VFye7XIJ99gjKYGJiKrfjso7w=; b=TEU69MWU07qVPP+G3FJEfpk1lT5g1ni25sxD9wDvR6BkL/LQVvuCn+BdFPJ7xxgG7N aGgHawQ7Yw5CLkSj5I4yeWnypHNJs/6Pi98WpMHu8dpPK7yatvR3CfAnm4SW6KZBoiLa UNEGhEdyIbKefTQFzZoknXGjj4aaJzPkRaYP1Ua58c1CfkguBopHOJRIUUh0F+lRAFu5 4qi+dJEvY34WJyXfxLCIruz4TKok4IP0MMAmWUBwzrs3N3tAUgp2ylmj3c/5v8rOiPXu j07hfGCtikTOzHFFZI0pxN1hCcOl4TyCfYaV6AUf/YBUzK+XKap75h/Cg7Ys7c3dr4S+ cjWQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y7-v6si1092151plh.806.2018.02.21.22.35.31; Wed, 21 Feb 2018 22:35:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752584AbeBVGeO (ORCPT + 99 others); Thu, 22 Feb 2018 01:34:14 -0500 Received: from mga03.intel.com ([134.134.136.65]:55370 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752478AbeBVGde (ORCPT ); Thu, 22 Feb 2018 01:33:34 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Feb 2018 22:33:33 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,377,1515484800"; d="scan'208";a="31891778" Received: from otc-nc-03.jf.intel.com ([10.54.39.38]) by fmsmga004.fm.intel.com with ESMTP; 21 Feb 2018 22:33:33 -0800 From: Ashok Raj To: bp@suse.de Cc: Ashok Raj , X86 ML , LKML , Thomas Gleixner , Ingo Molnar , Tony Luck , Andi Kleen , Tom Lendacky , Arjan Van De Ven Subject: [v2 2/3] x86/microcode/intel: Perform a cache flush before ucode update. Date: Wed, 21 Feb 2018 22:33:24 -0800 Message-Id: <1519281205-58951-3-git-send-email-ashok.raj@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1519281205-58951-1-git-send-email-ashok.raj@intel.com> References: <1519281205-58951-1-git-send-email-ashok.raj@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Microcode updates can be safer if the caches are clean. Some of the issues around in certain Broadwell parts can be addressed by doing a full cache flush. Signed-off-by: Ashok Raj Cc: X86 ML Cc: LKML Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Tony Luck Cc: Andi Kleen Cc: Boris Petkov Cc: Tom Lendacky Cc: Arjan Van De Ven --- arch/x86/kernel/cpu/microcode/intel.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c index 137c9f5..50e48c4 100644 --- a/arch/x86/kernel/cpu/microcode/intel.c +++ b/arch/x86/kernel/cpu/microcode/intel.c @@ -601,6 +601,13 @@ static int apply_microcode_early(struct ucode_cpu_info *uci, bool early) return UCODE_OK; } + /* + * Microcode updates can be safer if the caches are clean. + * Some of the issues around in certain Broadwell parts + * can be addressed by doing a full cache flush. + */ + native_wbinvd(); + /* write microcode via MSR 0x79 */ native_wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); @@ -817,6 +824,13 @@ static enum ucode_state apply_microcode_intel(int cpu) return UCODE_OK; } + /* + * Microcode updates can be safer if the caches are clean. + * Some of the issues around in certain Broadwell parts + * can be addressed by doing a full cache flush. + */ + wbinvd(); + /* write microcode via MSR 0x79 */ wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); -- 2.7.4