From patchwork Mon Aug 28 16:53:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Baicar X-Patchwork-Id: 9925863 X-Patchwork-Delegate: rjw@sisk.pl 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 150B560380 for ; Mon, 28 Aug 2017 16:53:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 066F128738 for ; Mon, 28 Aug 2017 16:53:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EE93C28751; Mon, 28 Aug 2017 16:53:47 +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 6025728738 for ; Mon, 28 Aug 2017 16:53:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751326AbdH1Qxq (ORCPT ); Mon, 28 Aug 2017 12:53:46 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:44092 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751306AbdH1Qxp (ORCPT ); Mon, 28 Aug 2017 12:53:45 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 49D9E60727; Mon, 28 Aug 2017 16:53:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1503939225; bh=KJZ9vyqrA8d9U2QQyQIPWl8nkfTJCXgdgwt6rOG1uE4=; h=From:To:Cc:Subject:Date:From; b=eguPc/Hrypa77u2lTenL8vvXopIamZT4wFBxKDB88T+FM13zujO5RyGH/2VjZQr5J 64CcuBaUU1oH7T1A1UPMtfq9V3oIhuCMvJxZI/Ecn5R+TTtyR4ddFnOnbreimeB+Cf RKdb6J2qyK3jdkrbGSBVj/Qlfzg07RMtoBkINxp8= Received: from tbaicar-lnx.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: tbaicar@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id D602860723; Mon, 28 Aug 2017 16:53:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1503939224; bh=KJZ9vyqrA8d9U2QQyQIPWl8nkfTJCXgdgwt6rOG1uE4=; h=From:To:Cc:Subject:Date:From; b=kuB/Vo/kzYoNGU4t6aqlhr8/YeZDmtt7qpNuNL8B1dqEJBe1WDBC9ERD/QmjUCr9v hbMp1WJlmigDkq8GUWOiHC7EUliWNIe6trnEwjyz8WFbVDlZn9p4Eq601ct9XRg0cf XyU3d03dL5oloWZu0ZJdNiAWagy/G9RjUutlJlZs= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org D602860723 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, will.deacon@arm.com, james.morse@arm.com, bp@suse.de, shiju.jose@huawei.com, geliangtang@gmail.com, andriy.shevchenko@linux.intel.com, tony.luck@intel.com, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tyler Baicar Subject: [PATCH V3] acpi: apei: clear error status before acknowledging the error Date: Mon, 28 Aug 2017 10:53:41 -0600 Message-Id: <1503939221-27732-1-git-send-email-tbaicar@codeaurora.org> X-Mailer: git-send-email 1.9.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 Currently we acknowledge errors before clearing the error status. This could cause a new error to be populated by firmware in-between the error acknowledgment and the error status clearing which would cause the second error's status to be cleared without being handled. So, clear the error status before acknowledging the errors. Also, make sure to acknowledge the error if the error status read fails. V3: Seperate check for -ENOENT return value V2: Only send error ack if there was an error populated Remove curly braces that are no longer needed Signed-off-by: Tyler Baicar Reviewed-by: Borislav Petkov --- drivers/acpi/apei/ghes.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index d661d45..8d43b1c 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -743,17 +743,19 @@ static int ghes_proc(struct ghes *ghes) } ghes_do_proc(ghes, ghes->estatus); +out: + ghes_clear_estatus(ghes); + + if (rc == -ENOENT) + return rc; + /* * GHESv2 type HEST entries introduce support for error acknowledgment, * so only acknowledge the error if this support is present. */ - if (is_hest_type_generic_v2(ghes)) { - rc = ghes_ack_error(ghes->generic_v2); - if (rc) - return rc; - } -out: - ghes_clear_estatus(ghes); + if (is_hest_type_generic_v2(ghes)) + return ghes_ack_error(ghes->generic_v2); + return rc; }