[v7 PATCH 0/6] ACPI / APEI: Add support to notify non-fatal HW errors

From: Shiju Jose
Date: Tue Apr 07 2020 - 08:02:25 EST


Add common interface for queuing up the non-fatal HW errors and notify
the registered kernel drivers.The interface supports drivers to register
to receive the callback for the non-fatal HW errors, including the vendor
specific HW errors, for the recovery and supports handling the non-fatal
errors in the bottom half.

Patch set
1. add the new interface to the APEI driver for the non-fatal HW
error notification.
2. change the existing error handling for the standard errors
to use the above notification interface.
2. add driver to handle HiSilicon hip PCIe controller's errors.

Changes:

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<lkp@xxxxxxxxx>:
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 (5):
ACPI / APEI: Add support to queuing up the non-fatal HW errors and
notify
ACPI / APEI: Add callback for memory errors to the GHES notifier
ACPI / APEI: Add callback for AER to the GHES notifier
ACPI / APEI: Add callback for ARM HW errors to the GHES notifier
ACPI / APEI: Add callback for non-standard HW errors to the GHES
notifier

Yicong Yang (1):
PCI: hip: Add handling of HiSilicon HIP PCIe controller errors

drivers/acpi/apei/ghes.c | 268 ++++++++++++++++---
drivers/pci/controller/Kconfig | 8 +
drivers/pci/controller/Makefile | 1 +
drivers/pci/controller/pcie-hisi-error.c | 323 +++++++++++++++++++++++
include/acpi/ghes.h | 28 ++
5 files changed, 595 insertions(+), 33 deletions(-)
create mode 100644 drivers/pci/controller/pcie-hisi-error.c

--
2.17.1