Commit 67eb2e99 authored by Huang Ying's avatar Huang Ying Committed by Len Brown

ACPI, APEI, GHES, printk support for recoverable error via NMI

Some APEI GHES recoverable errors are reported via NMI, but printk is
not safe in NMI context.

To solve the issue, a lock-less memory allocator is used to allocate
memory in NMI handler, save the error record into the allocated
memory, put the error record into a lock-less list.  On the other
hand, an irq_work is used to delay the operation from NMI context to
IRQ context.  The irq_work IRQ handler will remove nodes from
lock-less list, printk the error record and do some further processing
include recovery operation, then free the memory.
Signed-off-by: default avatarHuang Ying <ying.huang@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 7f184275
...@@ -13,6 +13,8 @@ config ACPI_APEI_GHES ...@@ -13,6 +13,8 @@ config ACPI_APEI_GHES
bool "APEI Generic Hardware Error Source" bool "APEI Generic Hardware Error Source"
depends on ACPI_APEI && X86 depends on ACPI_APEI && X86
select ACPI_HED select ACPI_HED
select LLIST
select GENERIC_ALLOCATOR
help help
Generic Hardware Error Source provides a way to report Generic Hardware Error Source provides a way to report
platform hardware errors (such as that from chipset). It platform hardware errors (such as that from chipset). It
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment