From: "Suzuki K. Poulose" <Suzuki.Poulose@arm.com>
To: fu.wei@linaro.org, tomasz.nowicki@linaro.org, tn@semihalf.com,
rjw@rjwysocki.net, lenb@kernel.org, catalin.marinas@arm.com,
will.deacon@arm.com
Cc: linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org,
linaro-acpi@lists.linaro.org, graeme.gregory@linaro.org,
al.stone@linaro.org, hanjun.guo@linaro.org, mark.rutland@arm.com,
Marc.Zyngier@arm.com, lorenzo.pieralisi@arm.com,
rruigrok@codeaurora.org, harba@qti.qualcomm.com, jcm@redhat.com,
msalter@redhat.com, grant.likely@linaro.org, rrichter@cavium.com,
jarkko.nikula@linux.intel.com, jon.zhixiong.zhang@gmail.com
Subject: Re: [PATCH v4] acpi, apei, arm64: APEI initial support for aarch64.
Date: Tue, 8 Dec 2015 15:53:07 +0000 [thread overview]
Message-ID: <5666FCE3.4070300@arm.com> (raw)
In-Reply-To: <1449558183-12259-1-git-send-email-fu.wei@linaro.org>
On 08/12/15 07:03, fu.wei@linaro.org wrote:
> From: Tomasz Nowicki <tomasz.nowicki@linaro.org>
>
> This commit provides APEI arch-specific bits for aarch64
>
> Meanwhile, add a new subfunction "hest_ia_init" for
> "acpi_disable_cmcff" which is used by IA-32 Architecture
> Corrected Machine Check (CMC).
>
> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
> Tested-by: Jonathan (Zhixiong) Zhang <zjzhang@codeaurora.org>
> Signed-off-by: Fu Wei <fu.wei@linaro.org>
> ---
> Changelog:
> v4: Rebase to latest kernel version(4.4-rc4).
> Move arch_apei_flush_tlb_one into header file as a inline function
> Add a new subfunction "hest_ia_init" for "acpi_disable_cmcff".
>
> v3: https://lkml.org/lkml/2015/12/3/521
> Remove "acpi_disable_cmcff" from arm64 code,
> and wrap it in hest.c by "#if defined(__i386__) || defined(__x86_64__)"
>
> v2: https://lkml.org/lkml/2015/12/2/432
> Rebase to latest kernel version(4.4-rc3).
> Move arch_apei_flush_tlb_one() to arch/arm64/kernel/acpi.c
>
> v1: https://lkml.org/lkml/2015/8/14/199
> Move arch_apei_flush_tlb_one() to arch/arm64/include/asm/apci.h.
> Delete arch/arm64/kernel/apei.c.
> Add "#ifdef CONFIG_ACPI_APEI" for "acpi_disable_cmcff".
>
> arch/arm64/Kconfig | 1 +
> arch/arm64/include/asm/acpi.h | 5 +++++
> drivers/acpi/apei/hest.c | 19 ++++++++++++++++---
> 3 files changed, 22 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 871f217..58c8992 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -3,6 +3,7 @@ config ARM64
> select ACPI_CCA_REQUIRED if ACPI
> select ACPI_GENERIC_GSI if ACPI
> select ACPI_REDUCED_HARDWARE_ONLY if ACPI
> + select HAVE_ACPI_APEI if ACPI
> select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
> select ARCH_HAS_ELF_RANDOMIZE
> select ARCH_HAS_GCOV_PROFILE_ALL
> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
> index caafd63..31d3d9a 100644
> --- a/arch/arm64/include/asm/acpi.h
> +++ b/arch/arm64/include/asm/acpi.h
> @@ -17,6 +17,7 @@
>
> #include <asm/cputype.h>
> #include <asm/smp_plat.h>
> +#include <asm/tlbflush.h>
>
> /* Macros for consistency checks of the GICC subtable of MADT */
> #define ACPI_MADT_GICC_LENGTH \
> @@ -94,6 +95,10 @@ static inline const char *acpi_get_enable_method(int cpu)
>
> #ifdef CONFIG_ACPI_APEI
> pgprot_t arch_apei_get_mem_attribute(phys_addr_t addr);
> +static inline void arch_apei_flush_tlb_one(unsigned long addr)
> +{
> + flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
> +}
> #endif
>
> #endif /*_ASM_ACPI_H*/
> diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
> index 20b3fcf..715c58b 100644
> --- a/drivers/acpi/apei/hest.c
> +++ b/drivers/acpi/apei/hest.c
> @@ -117,15 +117,27 @@ int apei_hest_parse(apei_hest_func_t func, void *data)
> }
> EXPORT_SYMBOL_GPL(apei_hest_parse);
>
> +#if defined(__i386__) || defined(__x86_64__)
Would it be better if define a symbol like :
HAVE_ARCH_APEI_CMCFF for x86 and wrap it around that ?
> /*
> * Check if firmware advertises firmware first mode. We need FF bit to be set
> * along with a set of MC banks which work in FF mode.
> */
> static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr, void *data)
> {
> - return arch_apei_enable_cmcff(hest_hdr, data);
> + if (!acpi_disable_cmcff)
> + return !arch_apei_enable_cmcff(hest_hdr, data);
> +
> + return 0;
> }
>
> +static inline int __init hest_ia_init(void)
> +{
> + return apei_hest_parse(hest_parse_cmc, NULL);
> +}
> +#else
> +static inline int __init hest_ia_init(void) { return 0; }
> +#endif
Cheers
Suzuki
WARNING: multiple messages have this Message-ID (diff)
From: Suzuki.Poulose@arm.com (Suzuki K. Poulose)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4] acpi, apei, arm64: APEI initial support for aarch64.
Date: Tue, 8 Dec 2015 15:53:07 +0000 [thread overview]
Message-ID: <5666FCE3.4070300@arm.com> (raw)
In-Reply-To: <1449558183-12259-1-git-send-email-fu.wei@linaro.org>
On 08/12/15 07:03, fu.wei at linaro.org wrote:
> From: Tomasz Nowicki <tomasz.nowicki@linaro.org>
>
> This commit provides APEI arch-specific bits for aarch64
>
> Meanwhile, add a new subfunction "hest_ia_init" for
> "acpi_disable_cmcff" which is used by IA-32 Architecture
> Corrected Machine Check (CMC).
>
> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
> Tested-by: Jonathan (Zhixiong) Zhang <zjzhang@codeaurora.org>
> Signed-off-by: Fu Wei <fu.wei@linaro.org>
> ---
> Changelog:
> v4: Rebase to latest kernel version(4.4-rc4).
> Move arch_apei_flush_tlb_one into header file as a inline function
> Add a new subfunction "hest_ia_init" for "acpi_disable_cmcff".
>
> v3: https://lkml.org/lkml/2015/12/3/521
> Remove "acpi_disable_cmcff" from arm64 code,
> and wrap it in hest.c by "#if defined(__i386__) || defined(__x86_64__)"
>
> v2: https://lkml.org/lkml/2015/12/2/432
> Rebase to latest kernel version(4.4-rc3).
> Move arch_apei_flush_tlb_one() to arch/arm64/kernel/acpi.c
>
> v1: https://lkml.org/lkml/2015/8/14/199
> Move arch_apei_flush_tlb_one() to arch/arm64/include/asm/apci.h.
> Delete arch/arm64/kernel/apei.c.
> Add "#ifdef CONFIG_ACPI_APEI" for "acpi_disable_cmcff".
>
> arch/arm64/Kconfig | 1 +
> arch/arm64/include/asm/acpi.h | 5 +++++
> drivers/acpi/apei/hest.c | 19 ++++++++++++++++---
> 3 files changed, 22 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 871f217..58c8992 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -3,6 +3,7 @@ config ARM64
> select ACPI_CCA_REQUIRED if ACPI
> select ACPI_GENERIC_GSI if ACPI
> select ACPI_REDUCED_HARDWARE_ONLY if ACPI
> + select HAVE_ACPI_APEI if ACPI
> select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
> select ARCH_HAS_ELF_RANDOMIZE
> select ARCH_HAS_GCOV_PROFILE_ALL
> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
> index caafd63..31d3d9a 100644
> --- a/arch/arm64/include/asm/acpi.h
> +++ b/arch/arm64/include/asm/acpi.h
> @@ -17,6 +17,7 @@
>
> #include <asm/cputype.h>
> #include <asm/smp_plat.h>
> +#include <asm/tlbflush.h>
>
> /* Macros for consistency checks of the GICC subtable of MADT */
> #define ACPI_MADT_GICC_LENGTH \
> @@ -94,6 +95,10 @@ static inline const char *acpi_get_enable_method(int cpu)
>
> #ifdef CONFIG_ACPI_APEI
> pgprot_t arch_apei_get_mem_attribute(phys_addr_t addr);
> +static inline void arch_apei_flush_tlb_one(unsigned long addr)
> +{
> + flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
> +}
> #endif
>
> #endif /*_ASM_ACPI_H*/
> diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
> index 20b3fcf..715c58b 100644
> --- a/drivers/acpi/apei/hest.c
> +++ b/drivers/acpi/apei/hest.c
> @@ -117,15 +117,27 @@ int apei_hest_parse(apei_hest_func_t func, void *data)
> }
> EXPORT_SYMBOL_GPL(apei_hest_parse);
>
> +#if defined(__i386__) || defined(__x86_64__)
Would it be better if define a symbol like :
HAVE_ARCH_APEI_CMCFF for x86 and wrap it around that ?
> /*
> * Check if firmware advertises firmware first mode. We need FF bit to be set
> * along with a set of MC banks which work in FF mode.
> */
> static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr, void *data)
> {
> - return arch_apei_enable_cmcff(hest_hdr, data);
> + if (!acpi_disable_cmcff)
> + return !arch_apei_enable_cmcff(hest_hdr, data);
> +
> + return 0;
> }
>
> +static inline int __init hest_ia_init(void)
> +{
> + return apei_hest_parse(hest_parse_cmc, NULL);
> +}
> +#else
> +static inline int __init hest_ia_init(void) { return 0; }
> +#endif
Cheers
Suzuki
next prev parent reply other threads:[~2015-12-08 15:53 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-08 7:03 [PATCH v4] acpi, apei, arm64: APEI initial support for aarch64 fu.wei
2015-12-08 7:03 ` fu.wei at linaro.org
2015-12-08 11:26 ` Hanjun Guo
2015-12-08 11:26 ` Hanjun Guo
2015-12-08 12:45 ` Fu Wei
2015-12-08 12:45 ` Fu Wei
2015-12-08 12:34 ` Lorenzo Pieralisi
2015-12-08 12:34 ` Lorenzo Pieralisi
2015-12-08 12:52 ` Hanjun Guo
2015-12-08 12:52 ` Hanjun Guo
2015-12-08 13:08 ` Fu Wei
2015-12-08 13:08 ` Fu Wei
2015-12-08 14:07 ` Lorenzo Pieralisi
2015-12-08 14:07 ` Lorenzo Pieralisi
2015-12-09 3:25 ` Fu Wei
2015-12-09 3:25 ` Fu Wei
2015-12-10 2:02 ` Fu Wei
2015-12-10 2:02 ` Fu Wei
2015-12-10 11:01 ` Will Deacon
2015-12-10 11:01 ` Will Deacon
2015-12-14 11:20 ` Borislav Petkov
2015-12-14 11:20 ` Borislav Petkov
2015-12-14 11:20 ` Borislav Petkov
2015-12-14 11:46 ` Will Deacon
2015-12-14 11:46 ` Will Deacon
2015-12-14 11:46 ` Will Deacon
2015-12-14 12:39 ` Borislav Petkov
2015-12-14 12:39 ` Borislav Petkov
2015-12-14 12:39 ` Borislav Petkov
2015-12-08 15:53 ` Suzuki K. Poulose [this message]
2015-12-08 15:53 ` Suzuki K. Poulose
2015-12-09 3:00 ` Fu Wei
2015-12-09 3:00 ` Fu Wei
2015-12-09 3:00 ` Fu Wei
2015-12-14 10:46 ` Borislav Petkov
2015-12-14 10:46 ` Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5666FCE3.4070300@arm.com \
--to=suzuki.poulose@arm.com \
--cc=Marc.Zyngier@arm.com \
--cc=al.stone@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=fu.wei@linaro.org \
--cc=graeme.gregory@linaro.org \
--cc=grant.likely@linaro.org \
--cc=hanjun.guo@linaro.org \
--cc=harba@qti.qualcomm.com \
--cc=jarkko.nikula@linux.intel.com \
--cc=jcm@redhat.com \
--cc=jon.zhixiong.zhang@gmail.com \
--cc=lenb@kernel.org \
--cc=linaro-acpi@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=msalter@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=rrichter@cavium.com \
--cc=rruigrok@codeaurora.org \
--cc=tn@semihalf.com \
--cc=tomasz.nowicki@linaro.org \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.