]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ACPI, APEI, GHES, printk support for recoverable error via NMI
authorHuang Ying <ying.huang@intel.com>
Wed, 13 Jul 2011 05:14:25 +0000 (13:14 +0800)
committerLen Brown <len.brown@intel.com>
Thu, 14 Jul 2011 03:39:39 +0000 (23:39 -0400)
commita7c639cdfcc43220fd4ae40e500d60e7ec501710
treedc3863496a4b6c4e30450f1b94d3e1c87b858e7a
parentc1b9297cb623c9f2ea33ff6027e8100d76cd9944
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: Huang Ying <ying.huang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/apei/Kconfig
drivers/acpi/apei/ghes.c