diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c index 7597e82a0..e0e32bea8 100644 --- a/drivers/acpi/apei/hest.c +++ b/drivers/acpi/apei/hest.c @@ -141,11 +141,13 @@ static int __init hest_parse_ghes_count(struct acpi_hest_header *hest_hdr, void { int *count = data; - if ((hest_hdr->type == ACPI_HEST_TYPE_GENERIC_ERROR || - hest_hdr->type == ACPI_HEST_TYPE_GENERIC_ERROR_V2) && - (boot_cpu_data.x86_vendor != X86_VENDOR_AMD || - !(hest_hdr->source_id &0xF000))) - (*count)++; + if (hest_hdr->type == ACPI_HEST_TYPE_GENERIC_ERROR || + hest_hdr->type == ACPI_HEST_TYPE_GENERIC_ERROR_V2) { +#ifdef CONFIG_X86 + if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD || !(hest_hdr->source_id & 0xF000)) +#endif + (*count)++; + } return 0; } @@ -155,12 +157,15 @@ static int __init hest_parse_ghes(struct acpi_hest_header *hest_hdr, void *data) struct ghes_arr *ghes_arr = data; int rc, i; - if ((hest_hdr->type != ACPI_HEST_TYPE_GENERIC_ERROR && - hest_hdr->type != ACPI_HEST_TYPE_GENERIC_ERROR_V2) || - ((hest_hdr->source_id & 0xF000) && - boot_cpu_data.x86_vendor == X86_VENDOR_AMD)) + if (hest_hdr->type != ACPI_HEST_TYPE_GENERIC_ERROR && + hest_hdr->type != ACPI_HEST_TYPE_GENERIC_ERROR_V2) return 0; +#ifdef CONFIG_X86 + if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD && (hest_hdr->source_id & 0xF000)) + return 0; +#endif + if (!((struct acpi_hest_generic *)hest_hdr)->enabled) return 0; for (i = 0; i < ghes_arr->count; i++) {