summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/apei
diff options
context:
space:
mode:
authorTomasz Nowicki <tomasz.nowicki@linaro.org>2016-12-01 08:51:12 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-12-01 18:24:34 -0500
commit9f9a35a7b654e006250530425eb1fb527f0d32e9 (patch)
tree2433ab0d115e68e048fa4c2add567959d9661837 /drivers/acpi/apei
parenta545715d2dae8d071c5b06af947b07ffa846b288 (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.c13
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 */
124static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr, void *data) 124static 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
129struct ghes_arr { 135struct 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);