Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp334265yba; Mon, 20 May 2019 09:29:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqy+Vfg6PoxlYvLJWHkKwOFst+raFiIPuW/oCOPK5FiT+vAXiXvOg8DzoFtnrw7aNoUcjwXH X-Received: by 2002:a17:902:b202:: with SMTP id t2mr75079524plr.69.1558369773525; Mon, 20 May 2019 09:29:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558369773; cv=none; d=google.com; s=arc-20160816; b=hklAnx5Zm6P5F9YtkqekSimhFRWWRkSKVuPnULrrx5av6hTqASsAeESnR3PEvbI/Lx CxKm4jcIHcfCW2+kZNDaxYxSGu3qakojFErIDK12vuJsDxe4prTn/cD+C5EMnNf5nf0N M7oow6OWl/PwRPVo8COxrUkrnvMDM2Srehj2Zhr7UpdFcQqrYg7sDufJRfEiYCj5xmCE 1p+Lb3xyHdFo2lcpwDKlz020QIXs7lwAnwD1PZg6IRID3LU2Ttshk5b5/l/YPB+2IBBn 6EB4CU76GLi5U49YwVlFkFlevbL/0y+wLZ91eZzLUHyj+Lucu/rzqItX25b/3fhsr1cG JkiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=CYKPKFNAzaSW3bO3UGooq0VZCTfPTFapz99kg4lUiZ0=; b=W0wcxdatNEicxfghSAiN6eC+YbK4w/HgxBLfYFXmSDjmregs2sDwKBXWHBKxqNSG30 8rmi0WoGAkwiHQjb+bmpukydirphz24Bvrbem6xPqPogYlGpG+mVPKGk5sl+9FwjMm4w FnCMCNptJzfS9loA14kPeICtJVcPeMkd+cG4o4ZsscrpNPfzwSsYIGyTpoNC3IGx8HSu X45pGBP1rKc3htR2l35KntBJwDHufGXS56ls0d34bjxds+rauD5ss1WZ24r0zBQr2HYa 8jh2YLndWYZh2MdwC4ro6GWQxEShiMGJsoC5p0c7xem7ndWXGakKsccsDQ5YujNse7yO mv0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Ltmk8T0F; 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 g3si18323052pfi.97.2019.05.20.09.29.18; Mon, 20 May 2019 09:29:33 -0700 (PDT) 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; dkim=pass header.i=@kernel.org header.s=default header.b=Ltmk8T0F; 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 S2389634AbfETM2O (ORCPT + 99 others); Mon, 20 May 2019 08:28:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:43734 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389590AbfETM2F (ORCPT ); Mon, 20 May 2019 08:28:05 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0C24921019; Mon, 20 May 2019 12:28:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558355284; bh=5QtOyxNW/y+7Hcy7rOPEPdbZxZW89eKydDTuooqxbr4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ltmk8T0F1EHAcRAkGtbu+4U/X/9ZNUQoIzc5gYOexqVqqQMF4XNGSv+W5IpQkaER1 2U7EpBpDa6xrIXebeTSwfsQPy9VSdEUDYx5PEqvAB4HREPx40WIkbsUhRsLqK50J1v 2lo1/jaT+TJjOoN1uXMXCnqhLi6KxgfeWVbmcyXI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Borislav Petkov , Arnd Bergmann , "clemej@gmail.com" , "H. Peter Anvin" , Ingo Molnar , Pu Wen , Qiuxu Zhuo , "rafal@milecki.pl" , Shirish S , Thomas Gleixner , Tony Luck , Vishal Verma , x86-ml Subject: [PATCH 5.0 020/123] x86/MCE: Add an MCE-record filtering function Date: Mon, 20 May 2019 14:13:20 +0200 Message-Id: <20190520115246.231324489@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115245.439864225@linuxfoundation.org> References: <20190520115245.439864225@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yazen Ghannam commit 45d4b7b9cb88526f6d5bd4c03efab88d75d10e4f upstream. Some systems may report spurious MCA errors. In general, spurious MCA errors may be disabled by clearing a particular bit in MCA_CTL. However, clearing a bit in MCA_CTL may not be recommended for some errors, so the only option is to ignore them. An MCA error is printed and handled after it has been added to the MCE event pool. So an MCA error can be ignored by not adding it to that pool in the first place. Add such a filtering function. [ bp: Move function prototype to the internal header and massage. ] Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Cc: Arnd Bergmann Cc: "clemej@gmail.com" Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Pu Wen Cc: Qiuxu Zhuo Cc: "rafal@milecki.pl" Cc: Shirish S Cc: # 5.0.x Cc: Thomas Gleixner Cc: Tony Luck Cc: Vishal Verma Cc: x86-ml Link: https://lkml.kernel.org/r/20190325163410.171021-1-Yazen.Ghannam@amd.com Signed-off-by: Greg Kroah-Hartman --- arch/x86/kernel/cpu/mce/core.c | 5 +++++ arch/x86/kernel/cpu/mce/genpool.c | 3 +++ arch/x86/kernel/cpu/mce/internal.h | 3 +++ 3 files changed, 11 insertions(+) --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -1801,6 +1801,11 @@ static void __mcheck_cpu_init_timer(void mce_start_timer(t); } +bool filter_mce(struct mce *m) +{ + return false; +} + /* Handle unconfigured int18 (should never happen) */ static void unexpected_machine_check(struct pt_regs *regs, long error_code) { --- a/arch/x86/kernel/cpu/mce/genpool.c +++ b/arch/x86/kernel/cpu/mce/genpool.c @@ -99,6 +99,9 @@ int mce_gen_pool_add(struct mce *mce) { struct mce_evt_llist *node; + if (filter_mce(mce)) + return -EINVAL; + if (!mce_evt_pool) return -EINVAL; --- a/arch/x86/kernel/cpu/mce/internal.h +++ b/arch/x86/kernel/cpu/mce/internal.h @@ -173,4 +173,7 @@ struct mca_msr_regs { extern struct mca_msr_regs msr_ops; +/* Decide whether to add MCE record to MCE event pool or filter it out. */ +extern bool filter_mce(struct mce *m); + #endif /* __X86_MCE_INTERNAL_H__ */