From patchwork Wed Jul 22 10:39:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shiju Jose X-Patchwork-Id: 246984 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp414295ilg; Wed, 22 Jul 2020 03:43:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwsfbNTrnRm/a/xRQz+fsDRWEKmkPqA3rJR+aHENTqLWMaMXklc0U9TBb9ac/igbVRJyt0+ X-Received: by 2002:a17:906:fcab:: with SMTP id qw11mr443353ejb.456.1595414633170; Wed, 22 Jul 2020 03:43:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595414633; cv=none; d=google.com; s=arc-20160816; b=y7X/kal1mTR+P/VwV4SlX5ZCWsp2GVgSb7oxAGboMi9RsMgIJI9mBmQpgf4Z6sSihu MJNH9DMNrAczGOZ0t5eE/1ApK8lnHF8c2HnvZScBBND2dEYLyFzZ+KIGZKptTcig9OMd X3CWd0C7w7xuGHJtxWlotrRCp0sGgFBKrej+AkHHfWkGRynXzPqrPc5dLvsahB6TTNBd 3RLlqtN/DSBPwdVZfled0qSYfZK8K24MWGSdQr8bj6yfeK5jNFootXVmPyWeclYVwewV OMp/tQkBusnuECLU5qFXBQJEf2ARBtgbk/+8hTAoTlVUAN15prf/v3S8jBhCUpTHFiwM M9Tw== 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 :message-id:date:subject:cc:to:from; bh=lEfuLGxcQhayQfVoZxBQTcjYj4Q7nvBYwLM6wCDHFi8=; b=I37Oazo3E3NPqe3/Zw5JLfpAtFGIkRM8Rd1RGybkcoDz/gHxfb7RhNpppQ9bH9K4rl OpZmDVBMp5fWAwVjpVLXEemBAyJP3g7eLGkBd7577Q+jbDutnTvZje/bbNQ7tH6hSLS2 Cvong+Kb13awvV2zT90PH6HHSzkxqBb22rPvhpp+pGceIPoA8cjvAPB2Xds01ftVZOJ4 PQjwDTuwdH8iJ/4E1rhxdhIQu3AKlyZNjS6ejig26anIVJ3/BYm72kVhu56jA5oI4TPF vVy/7y1/VavmUbqpqhWhk2HlgFkXHEc0EDwfaau2MvRAVnUqrWone6qTvoByKclrkhKV Guwg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-acpi-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-acpi-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m3si14059698edv.382.2020.07.22.03.43.52; Wed, 22 Jul 2020 03:43:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-acpi-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-acpi-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-acpi-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726153AbgGVKnw (ORCPT + 7 others); Wed, 22 Jul 2020 06:43:52 -0400 Received: from lhrrgout.huawei.com ([185.176.76.210]:2506 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725878AbgGVKnw (ORCPT ); Wed, 22 Jul 2020 06:43:52 -0400 Received: from lhreml715-chm.china.huawei.com (unknown [172.18.7.107]) by Forcepoint Email with ESMTP id BAE55E9CEA3A9EC41344; Wed, 22 Jul 2020 11:43:49 +0100 (IST) Received: from DESKTOP-6T4S3DQ.china.huawei.com (10.47.80.253) by lhreml715-chm.china.huawei.com (10.201.108.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Wed, 22 Jul 2020 11:43:49 +0100 From: Shiju Jose To: , , , , , , , , , , , , , CC: , , , Subject: [PATCH v13 0/2] ACPI / APEI: Add support to notify the vendor specific HW errors Date: Wed, 22 Jul 2020 11:39:50 +0100 Message-ID: <20200722103952.1009-1-shiju.jose@huawei.com> X-Mailer: git-send-email 2.26.0.windows.1 MIME-Version: 1.0 X-Originating-IP: [10.47.80.253] X-ClientProxiedBy: lhreml737-chm.china.huawei.com (10.201.108.187) To lhreml715-chm.china.huawei.com (10.201.108.66) X-CFilter-Loop: Reflected Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org CPER records describing a firmware-first error are identified by GUID. The ghes driver currently logs, but ignores any unknown CPER records. This prevents describing errors that can't be represented by a standard entry, that would otherwise allow a driver to recover from an error. The UEFI spec calls these 'Non-standard Section Body' (N.2.3 of version 2.8). patch set 1. add a notifier chain for these non-standard/vendor-records in the ghes driver. 2. add a driver to handle HiSilicon HIP PCIe controller's errors. Changes: V13: 1. Following changes in the HIP PCIe error handling driver. 1.1 Add Bjorn's acked-by. 1.2. Address the comments and macros order Bjorn mentioned. Fix the words in the commit. V12: 1. Changed the Signed-off-by tag to Co-developed-by tag in the patch "ACPI / APEI: Add a notifier chain for unknown (vendor) CPER records" V11: 1. Following modifications made by James Morse in the APEI patch for the vendor error record. - Removed kfifo and ghes_gdata_pool. Expanded commit message. 2. Changes in the HIP PCIe error handling driver for the comments by Andy Shevchenko. V10: 1. Changes for Bjorn's comments on HIP PCIe error handler driver and APEI patch. 2. Changes in the HIP PCIe error handler driver for the feedbacks by Andy Shevchenko. V9: 1. Fixed 2 improvements suggested by the kbuild test robot. 1.1 Change ghes_gdata_pool_init() as static function. 1.2. Removed using buffer to store the error data for logging in the hisi_pcie_handle_error() V8: 1. Removed reporting the standard errors through the interface because of the conflict with the recent patches in the memory error handling path. 2. Fix comments by Dan Carpenter. V7: 1. Add changes in the APEI driver suggested by Borislav Petkov, for queuing up all the non-fatal HW errors to the work queue and notify the registered kernel drivers from the bottom half using blocking notifier, common interface for both standard and vendor-spcific errors. 2. Fix for further feedbacks in v5 HIP PCIe error handler driver by Bjorn Helgaas. V6: 1. Fix few changes in the patch subject line suggested by Bjorn Helgaas. V5: 1. Fix comments from James Morse. 1.1 Changed the notification method to use the atomic_notifier_chain. 1.2 Add the error handled status for the user space. V4: 1. Fix for the following smatch warning in the PCIe error driver, reported by kbuild test robot: warn: should '((((1))) << (9 + i))' be a 64 bit type? if (err->val_bits & BIT(HISI_PCIE_LOCAL_VALID_ERR_MISC + i)) ^^^ This should be BIT_ULL() because it goes up to 9 + 32. V3: 1. Fix the comments from Bjorn Helgaas. V2: 1. Changes in the HiSilicon PCIe controller's error handling driver for the comments from Bjorn Helgaas. 2. Changes in the APEI interface to support reporting the vendor error for module with multiple devices, but use the same section type. In the error handler will use socket id/sub module id etc to distinguish the device. V1: 1. Fix comments from James Morse. 2. add driver to handle HiSilicon hip08 PCIe controller's errors, which is an application of the above interface. Shiju Jose (1): ACPI / APEI: Add a notifier chain for unknown (vendor) CPER records Yicong Yang (1): PCI: hip: Add handling of HiSilicon HIP PCIe controller errors drivers/acpi/apei/ghes.c | 63 +++++ drivers/pci/controller/Kconfig | 8 + drivers/pci/controller/Makefile | 1 + drivers/pci/controller/pcie-hisi-error.c | 327 +++++++++++++++++++++++ include/acpi/ghes.h | 27 ++ 5 files changed, 426 insertions(+) create mode 100644 drivers/pci/controller/pcie-hisi-error.c -- 2.17.1