On Fri, Jun 13, 2014 at 01:02:57PM +0200, Tomasz Nowicki wrote:
Currently APEI depends on x86 architecture. It is because of NMI hardware error notification of GHES which is currently supported by x86 only. However, many other APEI features can be still used perfectly by other architectures.
This commit adds ARCH_HAS_ACPI_APEI_NMI which will be used in next patches for NMI related code isolation in ghes.c file. Only NMI error notification feature depends on x86 so let it be hard selected for x86 arch.
Signed-off-by: Tomasz Nowicki tomasz.nowicki@linaro.org
arch/x86/Kconfig | 1 + drivers/acpi/apei/Kconfig | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 3fc9b12..e1dc819 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -24,6 +24,7 @@ config X86 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO
- select ARCH_HAS_ACPI_APEI_NMI select HAVE_AOUT if X86_32 select HAVE_UNSTABLE_SCHED_CLOCK select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
diff --git a/drivers/acpi/apei/Kconfig b/drivers/acpi/apei/Kconfig index c4dac71..9f6c3ec 100644 --- a/drivers/acpi/apei/Kconfig +++ b/drivers/acpi/apei/Kconfig @@ -3,7 +3,6 @@ config ACPI_APEI select MISC_FILESYSTEMS select PSTORE select UEFI_CPER
- depends on X86
Now this can practically be enabled on any architecture, AFAICT. Which is wrong.
I think a better solution would be to have another HAVE_ symbol which each arch which sports APEI selects. Like in the diff below ontop of this patch, also incorporating Robert's comments.
You'll have to do select HAVE_ACPI_APEI on arm too.
Hmm?
-- Index: b/arch/x86/Kconfig =================================================================== --- a/arch/x86/Kconfig 2014-06-19 16:25:48.118452980 +0200 +++ b/arch/x86/Kconfig 2014-06-19 16:24:57.270453451 +0200 @@ -24,7 +24,6 @@ config X86 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO - select ARCH_HAS_ACPI_APEI_NMI select HAVE_AOUT if X86_32 select HAVE_UNSTABLE_SCHED_CLOCK select ARCH_SUPPORTS_NUMA_BALANCING if X86_64 @@ -132,6 +131,8 @@ config X86 select HAVE_CC_STACKPROTECTOR select GENERIC_CPU_AUTOPROBE select HAVE_ARCH_AUDITSYSCALL + select HAVE_ACPI_APEI + select HAVE_ACPI_APEI_NMI
config INSTRUCTION_DECODER def_bool y Index: b/drivers/acpi/apei/Kconfig =================================================================== --- a/drivers/acpi/apei/Kconfig 2014-06-19 16:25:48.118452980 +0200 +++ b/drivers/acpi/apei/Kconfig 2014-06-19 16:24:32.710453679 +0200 @@ -1,8 +1,15 @@ +config HAVE_ACPI_APEI + bool + +config HAVE_ACPI_APEI_NMI + bool + config ACPI_APEI bool "ACPI Platform Error Interface (APEI)" select MISC_FILESYSTEMS select PSTORE select UEFI_CPER + depends on HAVE_ACPI_APEI help APEI allows to report errors (for example from the chipset) to the operating system. This improves NMI handling @@ -25,12 +32,6 @@ config ACPI_APEI_GHES by firmware to produce more valuable hardware error information for Linux.
-config ARCH_HAS_ACPI_APEI_NMI - bool - help - Firmware first mode can use NMI notification mechanism to report errors - to operating system. This feature is currently supported by X86 - architecture only.
config ACPI_APEI_PCIEAER bool "APEI PCIe AER logging/recovering support"