Received: by 10.223.185.116 with SMTP id b49csp1043712wrg; Wed, 21 Feb 2018 11:05:55 -0800 (PST) X-Google-Smtp-Source: AH8x227oMSJNIuFzJaM73XBVja9MjNRTf7Y23Y83J/njLT9effT6KPtl4vbnzqLDHd0rlAxQTa4q X-Received: by 10.99.51.77 with SMTP id z74mr3592647pgz.120.1519239955768; Wed, 21 Feb 2018 11:05:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519239955; cv=none; d=google.com; s=arc-20160816; b=HSJVydWw4DKqKowBldHGBeQS08aLdEU2QCbjLFl4hc3j0Akw4w7EgWdVCZP6Igh/To RQuzKJ1puRLMkocEPT9UZDRWfXYhEJXniHLwiqU3Hp869bHuRUCbagElF9EoSQnh8Li7 TY9U1yDR5q4EAkdQtvMMUnV134i9Ifm9ZZ9/mEsMUnEVVUly9IIcl8JiM11JFUGKO7Hb fl9eL5BwLwRutaA4Ut03PryiDSABHvUjS36D+d948Is5V7yjyFOw3q6k+SvmLL4IlK5b kEj3iq4hsoR9oAdBv9O/G64mU+CbQIa7O/ANqL6D8qtdsBkuw3nZCsAeJnWHminur0nL +CHw== 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=PhOPuFTiv14DPD0fq/ybRfzkIEB26Uz0j9TNMwy6dS0=; b=RN+LeqzrnBQ7vTuXkb1TPpEjAJ2ghFNJFYP8ZwHQnjveDl4zeYsR16DyS/2vuxQqMj +46i1nu+pJO48vSEVKT4+VTmlB1VY834+fWompTEWulZmf2DEFi48QrLGaJ1sbF+2F8F kOEhkAZXHb4ACenm8iBD90/w/nJpGW8Ng0EozFLMpfeiMsIRjqMMUDo2xd0BmJCbrgGA HnlHGTBzhF2SLUoUEpImbICd48v7I/TEVmxHJrEU4Tjum0xGGlipyHnqYmQJ8YMF/ifQ SUYUiJ8tmwbqXjrc8OXkMDJOoC2wRy/UbrzLRxBZn1f21wTOuQ25+1GMriJJ/MnXdceP hheg== 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 k3-v6si4290139pld.296.2018.02.21.11.05.40; Wed, 21 Feb 2018 11:05:55 -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 S938059AbeBUQux (ORCPT + 99 others); Wed, 21 Feb 2018 11:50:53 -0500 Received: from mga07.intel.com ([134.134.136.100]:58836 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S937563AbeBUQtz (ORCPT ); Wed, 21 Feb 2018 11:49:55 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Feb 2018 08:49:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,545,1511856000"; d="scan'208";a="20034212" Received: from otc-nc-03.jf.intel.com ([10.54.39.38]) by orsmga006.jf.intel.com with ESMTP; 21 Feb 2018 08:49:54 -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: [PATCH 2/3] x86/microcode/intel: Perform a cache flush before ucode update. Date: Wed, 21 Feb 2018 08:49:43 -0800 Message-Id: <1519231784-9941-3-git-send-email-ashok.raj@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1519231784-9941-1-git-send-email-ashok.raj@intel.com> References: <1519231784-9941-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 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c index eff80df..5d32724 100644 --- a/arch/x86/kernel/cpu/microcode/intel.c +++ b/arch/x86/kernel/cpu/microcode/intel.c @@ -589,6 +589,7 @@ static int apply_microcode_early(struct ucode_cpu_info *uci, bool early) if (!mc) return 0; + wbinvd(); /* write microcode via MSR 0x79 */ native_wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); @@ -805,6 +806,7 @@ static enum ucode_state apply_microcode_intel(int cpu) return UCODE_OK; } + wbinvd(); /* write microcode via MSR 0x79 */ wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); -- 2.7.4