mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 13:40:53 +07:00
ACPI / APEI: Fix parsing HEST that includes Deferred Machine Check subtable
ACPI 6.2 includes a new definition for a Deferred Machine Check "DMC"
subtable.
The definition of this subtable was included in following commit:
c042933df2
(ACPICA: Add support for new HEST subtable)
However, the HEST parsing function was not updated to include this new
subtable. Therefore, Linux will fail to parse the HEST on systems that
include a DMC entry.
Add the length check for the new DMC subtable so that HEST parsing
doesn't fail on systems that include it.
Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
6f9c104b18
commit
f3355298fc
@ -53,6 +53,7 @@ static const int hest_esrc_len_tab[ACPI_HEST_TYPE_RESERVED] = {
|
||||
[ACPI_HEST_TYPE_AER_BRIDGE] = sizeof(struct acpi_hest_aer_bridge),
|
||||
[ACPI_HEST_TYPE_GENERIC_ERROR] = sizeof(struct acpi_hest_generic),
|
||||
[ACPI_HEST_TYPE_GENERIC_ERROR_V2] = sizeof(struct acpi_hest_generic_v2),
|
||||
[ACPI_HEST_TYPE_IA32_DEFERRED_CHECK] = -1,
|
||||
};
|
||||
|
||||
static int hest_esrc_len(struct acpi_hest_header *hest_hdr)
|
||||
@ -75,6 +76,11 @@ static int hest_esrc_len(struct acpi_hest_header *hest_hdr)
|
||||
mc = (struct acpi_hest_ia_machine_check *)hest_hdr;
|
||||
len = sizeof(*mc) + mc->num_hardware_banks *
|
||||
sizeof(struct acpi_hest_ia_error_bank);
|
||||
} else if (hest_type == ACPI_HEST_TYPE_IA32_DEFERRED_CHECK) {
|
||||
struct acpi_hest_ia_deferred_check *mc;
|
||||
mc = (struct acpi_hest_ia_deferred_check *)hest_hdr;
|
||||
len = sizeof(*mc) + mc->num_hardware_banks *
|
||||
sizeof(struct acpi_hest_ia_error_bank);
|
||||
}
|
||||
BUG_ON(len == -1);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user