From patchwork Wed Mar 29 15:54:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Baicar X-Patchwork-Id: 9651845 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 CDD32602C8 for ; Wed, 29 Mar 2017 15:54:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C0A782850E for ; Wed, 29 Mar 2017 15:54:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B56CE28510; Wed, 29 Mar 2017 15:54:49 +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=ham 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 233022850E for ; Wed, 29 Mar 2017 15:54:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932323AbdC2Pys (ORCPT ); Wed, 29 Mar 2017 11:54:48 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:37712 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932318AbdC2Pyq (ORCPT ); Wed, 29 Mar 2017 11:54:46 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 188D060F66; Wed, 29 Mar 2017 15:54:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1490802885; bh=QkchigerJHHRfyyVvZgRlSFxQe6mhCZgYbPxyQ5fMNA=; h=From:To:Cc:Subject:Date:From; b=jA+YXqtArB7K0nt5gnL3YdeNdYkbQ9h9kLwg8xc7v98S6koP2MZR0dObDp7ov3ant gxCjAPWOvffO9sr+K20NqzoTCzwNrJTstp2LjnbaPs7QxTyeoyL3Vw7dMjkwuqnbFo NRB1OQbvEVEZ7k58nAm1z9QjSU8PQNfGyvkbLmcU= 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 25D6760F31; Wed, 29 Mar 2017 15:54:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1490802884; bh=QkchigerJHHRfyyVvZgRlSFxQe6mhCZgYbPxyQ5fMNA=; h=From:To:Cc:Subject:Date:From; b=JcR6evZipGRZgYsVEwQW8P/9XaIR1MgZ8Vt7ix7f+w5hR/q6+Yl4ZBo3J7exT9rqd kmbULikpkSwJRf4y5rS99JjZxABk81oiax60AmROB6bOMzKUHbESykfZ5xMD6cB+CI UX6Hn6MIuxUHtZiv0NJS1J8L0BI7Ud85KyDL40CA= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 25D6760F31 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=tbaicar@codeaurora.org From: Tyler Baicar To: rjw@rjwysocki.net, lenb@kernel.org, bp@suse.de, prarit@redhat.com, bhelgaas@google.com, punit.agrawal@arm.com, mingo@kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, shiju.jose@huawei.com, James.Morse@arm.com, ahs3@redhat.com Cc: Tyler Baicar Subject: [PATCH V2] acpi: apei: check for pending errors when probing HED type GHES entries Date: Wed, 29 Mar 2017 09:54:40 -0600 Message-Id: <1490802880-10239-1-git-send-email-tbaicar@codeaurora.org> X-Mailer: git-send-email 1.8.2.1 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 If a HED type error occurs prior to GHES probing, the kernel will never report the error. The HED driver will see that no notifiers are registered, and clear the interrupt. This becomes a more serious problem with firmware that supports GHESv2 acknowledgements from the kernel. The firmware will populate the error and wait for the kernel ack. But since the kernel will never process the error we get into a state that the firmware will not send any more errors and the kernel will never see or ack the original error. Check for pending errors when probing HED type GHES entries to avoid the above situation. This patch is based on Shiju's patch that adds support for GSIV and GPIO notification types: https://patchwork.kernel.org/patch/9628817/ Signed-off-by: Tyler Baicar --- drivers/acpi/apei/ghes.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index fd39929..cf5e938 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -1035,6 +1035,7 @@ static int ghes_probe(struct platform_device *ghes_dev) register_acpi_hed_notifier(&ghes_notifier_hed); list_add_rcu(&ghes->list, &ghes_hed); mutex_unlock(&ghes_list_mutex); + ghes_proc(ghes); break; case ACPI_HEST_NOTIFY_NMI: ghes_nmi_add(ghes);