From: jyao1 Date: Fri, 16 Jul 2010 04:31:02 +0000 (+0000) Subject: Enhance to follow UEFI2.3 spec - the EFI_ACPI_TABLE_PROTOCOL will ensure that the... X-Git-Tag: edk2-stable201903~15692 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=4196f91ec0e615ecbddd2fc267a39fd7f3c59b91 Enhance to follow UEFI2.3 spec - the EFI_ACPI_TABLE_PROTOCOL will ensure that the checksum field is correct for both the RSDT/XSDT table and the table being installed through the AcpiTableBuffer parameter. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10655 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c index c551d0bd5d..cb3dc89948 100644 --- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c +++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c @@ -330,7 +330,13 @@ InstallAcpiTable ( Length = ((EFI_ACPI_COMMON_HEADER *) AcpiTableBuffer)->Length; Checksum = CalculateCheckSum8 ((UINT8 *)AcpiTableBuffer, Length); - ASSERT (Checksum == 0); + if (Checksum != 0) { + AcpiPlatformChecksum ( + (VOID *)AcpiTableBuffer, + (UINTN)Length, + OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER, Checksum) + ); + } // // Get the instance of the ACPI table protocol