diff options
author | Tomasz Nowicki <tomasz.nowicki@linaro.org> | 2016-12-01 08:51:12 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-12-01 18:24:34 -0500 |
commit | 9f9a35a7b654e006250530425eb1fb527f0d32e9 (patch) | |
tree | 2433ab0d115e68e048fa4c2add567959d9661837 /drivers/acpi/apei | |
parent | a545715d2dae8d071c5b06af947b07ffa846b288 (diff) |
ACPI / APEI / ARM64: APEI initial support for ARM64
This patch provides APEI arch-specific bits for ARM64
Meanwhile,
(1) Move HEST type (ACPI_HEST_TYPE_IA32_CORRECTED_CHECK) checking to
a generic place.
(2) Select HAVE_ACPI_APEI when EFI and ACPI is set on ARM64, because
arch_apei_get_mem_attribute is using efi_mem_attributes() on
ARM64.
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>
[ Fu Wei: improve && upstream ]
Acked-by: Hanjun Guo <hanjun.guo@linaro.org>
Tested-by: Tyler Baicar <tbaicar@codeaurora.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/apei')
-rw-r--r-- | drivers/acpi/apei/hest.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c index 20b3fcf4007c..8f2a98e23bba 100644 --- a/drivers/acpi/apei/hest.c +++ b/drivers/acpi/apei/hest.c | |||
@@ -123,7 +123,13 @@ EXPORT_SYMBOL_GPL(apei_hest_parse); | |||
123 | */ | 123 | */ |
124 | static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr, void *data) | 124 | static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr, void *data) |
125 | { | 125 | { |
126 | return arch_apei_enable_cmcff(hest_hdr, data); | 126 | if (hest_hdr->type != ACPI_HEST_TYPE_IA32_CORRECTED_CHECK) |
127 | return 0; | ||
128 | |||
129 | if (!acpi_disable_cmcff) | ||
130 | return !arch_apei_enable_cmcff(hest_hdr, data); | ||
131 | |||
132 | return 0; | ||
127 | } | 133 | } |
128 | 134 | ||
129 | struct ghes_arr { | 135 | struct ghes_arr { |
@@ -232,8 +238,9 @@ void __init acpi_hest_init(void) | |||
232 | goto err; | 238 | goto err; |
233 | } | 239 | } |
234 | 240 | ||
235 | if (!acpi_disable_cmcff) | 241 | rc = apei_hest_parse(hest_parse_cmc, NULL); |
236 | apei_hest_parse(hest_parse_cmc, NULL); | 242 | if (rc) |
243 | goto err; | ||
237 | 244 | ||
238 | if (!ghes_disable) { | 245 | if (!ghes_disable) { |
239 | rc = apei_hest_parse(hest_parse_ghes_count, &ghes_count); | 246 | rc = apei_hest_parse(hest_parse_ghes_count, &ghes_count); |