From patchwork Fri Oct 7 21:31:18 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Baicar X-Patchwork-Id: 9367683 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BB7F86075E for ; Fri, 7 Oct 2016 21:34:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AFF0B2983C for ; Fri, 7 Oct 2016 21:34:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A45852983F; Fri, 7 Oct 2016 21:34:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5548F2983C for ; Fri, 7 Oct 2016 21:34:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757371AbcJGVcn (ORCPT ); Fri, 7 Oct 2016 17:32:43 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:37730 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757354AbcJGVch (ORCPT ); Fri, 7 Oct 2016 17:32:37 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 66CAE61B4B; Fri, 7 Oct 2016 21:32:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1475875956; bh=pBmPQH2Dy+cybkwkcq8ViNeX/vaeWbYaB0SQ0xpCK4k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bIRIX8PxPHhd/i3J0F1Z16dKesIPzX065VDtUAHcf+EYQssroFE+/rsi78OxUJIHp 1q34kJ/8hPr3UjRQ7Tr8bFji2BUcSQR3RffDM4vxaUhRM09YdvA9oCAHAejKTC8sk7 ESNSMlYon55Cov+VOqn52v/6GmUr6+AxgE9U6CNo= Received: from tbaicar-lnx.qualcomm.com (unknown [129.46.14.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: tbaicar@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 80E3761BB6; Fri, 7 Oct 2016 21:32:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1475875944; bh=pBmPQH2Dy+cybkwkcq8ViNeX/vaeWbYaB0SQ0xpCK4k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EbzovcZ2GkEQIZW9o8XKrkPUxXqgJZOcV9aQAuelLGO/QaPpp2cPdS3GbImP3uCKF +nlmV72nhvToykBUflSk0nBzG9nCLh9fJk29OY0PdPbndhG9RHzPHkR17WSYzps44u aV63YMObJuDztbCSW9+JIZiUnw43YyzqXzYwpYsg= DMARC-Filter: OpenDMARC Filter v1.3.1 smtp.codeaurora.org 80E3761BB6 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=pass smtp.mailfrom=tbaicar@codeaurora.org From: Tyler Baicar To: christoffer.dall@linaro.org, marc.zyngier@arm.com, pbonzini@redhat.com, rkrcmar@redhat.com, linux@armlinux.org.uk, catalin.marinas@arm.com, will.deacon@arm.com, rjw@rjwysocki.net, lenb@kernel.org, matt@codeblueprint.co.uk, robert.moore@intel.com, lv.zheng@intel.com, mark.rutland@arm.com, james.morse@arm.com, akpm@linux-foundation.org, sandeepa.s.prabhu@gmail.com, shijie.huang@arm.com, paul.gortmaker@windriver.com, tomasz.nowicki@linaro.org, fu.wei@linaro.org, rostedt@goodmis.org, bristot@redhat.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, Dkvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-efi@vger.kernel.org, devel@acpica.org Cc: "Jonathan (Zhixiong) Zhang" Subject: [PATCH V3 06/10] acpi: apei: panic OS with fatal error status block Date: Fri, 7 Oct 2016 15:31:18 -0600 Message-Id: <1475875882-2604-7-git-send-email-tbaicar@codeaurora.org> X-Mailer: git-send-email 1.8.2.1 In-Reply-To: <1475875882-2604-1-git-send-email-tbaicar@codeaurora.org> References: <1475875882-2604-1-git-send-email-tbaicar@codeaurora.org> Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: "Jonathan (Zhixiong) Zhang" Even if an error status block's severity is fatal, the kernel does not honor the severity level and panic. With the firmware first model, the platform could inform the OS about a fatal hardware error through the non-NMI GHES notification type. The OS should panic when a hardware error record is received with this severity. Call panic() after CPER data in error status block is printed if severity is fatal, before each error section is handled. Signed-off-by: Jonathan (Zhixiong) Zhang --- drivers/acpi/apei/ghes.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index 28d5a09..36894c8 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -141,6 +141,8 @@ static unsigned long ghes_estatus_pool_size_request; static struct ghes_estatus_cache *ghes_estatus_caches[GHES_ESTATUS_CACHES_SIZE]; static atomic_t ghes_estatus_cache_alloced; +static int ghes_panic_timeout __read_mostly = 30; + static int ghes_ioremap_init(void) { ghes_ioremap_area = __get_vm_area(PAGE_SIZE * GHES_IOREMAP_PAGES, @@ -715,6 +717,12 @@ static int ghes_proc(struct ghes *ghes) if (ghes_print_estatus(NULL, ghes->generic, ghes->estatus)) ghes_estatus_cache_add(ghes->generic, ghes->estatus); } + if (ghes_severity(ghes->estatus->error_severity) >= GHES_SEV_PANIC) { + if (panic_timeout == 0) + panic_timeout = ghes_panic_timeout; + panic("Fatal hardware error!"); + } + ghes_do_proc(ghes, ghes->estatus); if (ghes->generic_v2) { @@ -859,8 +867,6 @@ static atomic_t ghes_in_nmi = ATOMIC_INIT(0); static LIST_HEAD(ghes_nmi); -static int ghes_panic_timeout __read_mostly = 30; - static void ghes_proc_in_irq(struct irq_work *irq_work) { struct llist_node *llnode, *next;