diff mbox

[v3,2/5] acpi, apei, ghes: Introduce ARCH_HAS_ACPI_APEI_NMI to make NMI error notification a GHES feature.

Message ID 20140619142734.GE22025@pd.tnic (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Borislav Petkov June 19, 2014, 2:27 p.m. UTC
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?

--

Comments

Tomasz Nowicki June 24, 2014, 9 a.m. UTC | #1
On 19.06.2014 16:27, Borislav Petkov wrote:
> 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?
>

Now that it turns out we have to provide at least tlb_flush_... arch 
function, APEI can not be selected by any architecture. So you are right 
I will introduce HAVE_ACPI_APEI in next version of patches. Thanks.

Tomasz
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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"