From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755434AbcECHst (ORCPT ); Tue, 3 May 2016 03:48:49 -0400 Received: from terminus.zytor.com ([198.137.202.10]:37088 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750974AbcECHsq (ORCPT ); Tue, 3 May 2016 03:48:46 -0400 Date: Tue, 3 May 2016 00:47:41 -0700 From: tip-bot for Aravind Gopalakrishnan Message-ID: Cc: dvlasenk@redhat.com, Yazen.Ghannam@amd.com, linux-edac@vger.kernel.org, tglx@linutronix.de, brgerst@gmail.com, peterz@infradead.org, mingo@kernel.org, bp@suse.de, torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, aravindksg.lkml@gmail.com, Aravind.Gopalakrishnan@amd.com, luto@amacapital.net, tony.luck@intel.com, bp@alien8.de, hpa@zytor.com Reply-To: peterz@infradead.org, tglx@linutronix.de, brgerst@gmail.com, torvalds@linux-foundation.org, mingo@kernel.org, bp@suse.de, dvlasenk@redhat.com, Yazen.Ghannam@amd.com, linux-edac@vger.kernel.org, tony.luck@intel.com, luto@amacapital.net, hpa@zytor.com, bp@alien8.de, linux-kernel@vger.kernel.org, Aravind.Gopalakrishnan@amd.com, aravindksg.lkml@gmail.com In-Reply-To: <1462019637-16474-4-git-send-email-bp@alien8.de> References: <1462019637-16474-4-git-send-email-bp@alien8.de> To: linux-tip-commits@vger.kernel.org Subject: [tip:ras/core] x86/mce: Carve out writes to MCx_STATUS and MCx_CTL Git-Commit-ID: bb91f8c0176b072aeb6b84cfd7e04084025121e0 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: bb91f8c0176b072aeb6b84cfd7e04084025121e0 Gitweb: http://git.kernel.org/tip/bb91f8c0176b072aeb6b84cfd7e04084025121e0 Author: Aravind Gopalakrishnan AuthorDate: Sat, 30 Apr 2016 14:33:53 +0200 Committer: Ingo Molnar CommitDate: Tue, 3 May 2016 08:24:16 +0200 x86/mce: Carve out writes to MCx_STATUS and MCx_CTL We need to do this after __mcheck_cpu_init_vendor() as for ScalableMCA processors, there are going to be new MSR write handlers if the feature is detected using CPUID bit (which happens in __mcheck_cpu_init_vendor()). No functional change is introduced here. Signed-off-by: Aravind Gopalakrishnan Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Aravind Gopalakrishnan Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Link: http://lkml.kernel.org/r/1462019637-16474-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar --- arch/x86/kernel/cpu/mcheck/mce.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index 43f8b49..6bffb26 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -1420,7 +1420,6 @@ static void __mcheck_cpu_init_generic(void) enum mcp_flags m_fl = 0; mce_banks_t all_banks; u64 cap; - int i; if (!mca_cfg.bootlog) m_fl = MCP_DONTLOG; @@ -1436,6 +1435,11 @@ static void __mcheck_cpu_init_generic(void) rdmsrl(MSR_IA32_MCG_CAP, cap); if (cap & MCG_CTL_P) wrmsr(MSR_IA32_MCG_CTL, 0xffffffff, 0xffffffff); +} + +static void __mcheck_cpu_init_clear_banks(void) +{ + int i; for (i = 0; i < mca_cfg.banks; i++) { struct mce_bank *b = &mce_banks[i]; @@ -1717,6 +1721,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c) __mcheck_cpu_init_generic(); __mcheck_cpu_init_vendor(c); + __mcheck_cpu_init_clear_banks(); __mcheck_cpu_init_timer(); } @@ -2121,6 +2126,7 @@ static void mce_syscore_resume(void) { __mcheck_cpu_init_generic(); __mcheck_cpu_init_vendor(raw_cpu_ptr(&cpu_info)); + __mcheck_cpu_init_clear_banks(); } static struct syscore_ops mce_syscore_ops = { @@ -2138,6 +2144,7 @@ static void mce_cpu_restart(void *data) if (!mce_available(raw_cpu_ptr(&cpu_info))) return; __mcheck_cpu_init_generic(); + __mcheck_cpu_init_clear_banks(); __mcheck_cpu_init_timer(); }