edb6c78416
This update also means a major update for all of the big-endian patching that has been done. The older mechanism was getting to unwieldy to keep maintained, and too sensitive to upstream changes. Hence, redid all of the old patches, and took the opportunity to make them more amenable to change over time. Ultimately, the goal is to have upstream accept these in some form. Signed-off-by: Al Stone <ahs3@redhat.com>
76 lines
2.5 KiB
Diff
76 lines
2.5 KiB
Diff
From 1104928443b11ff1c0446ed1604882c0e6ae4dc1 Mon Sep 17 00:00:00 2001
|
|
From: Al Stone <ahs3@redhat.com>
|
|
Date: Wed, 23 Sep 2020 11:54:49 -0600
|
|
Subject: [PATCH 16/40] Support HEST in a big-endian world
|
|
|
|
Signed-off-by: Al Stone <ahs3@redhat.com>
|
|
---
|
|
source/common/dmtbdump1.c | 10 ++++++----
|
|
source/compiler/dttable1.c | 4 +++-
|
|
2 files changed, 9 insertions(+), 5 deletions(-)
|
|
|
|
Index: acpica-unix2-20200925/source/common/dmtbdump1.c
|
|
===================================================================
|
|
--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
|
|
+++ acpica-unix2-20200925/source/common/dmtbdump1.c
|
|
@@ -1138,12 +1138,13 @@ AcpiDmDumpHest (
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HEST_HEADER *Subtable;
|
|
- UINT32 Length = Table->Length;
|
|
+ UINT32 Length = AcpiUtReadUint32(&Table->Length);
|
|
UINT32 Offset = sizeof (ACPI_TABLE_HEST);
|
|
ACPI_DMTABLE_INFO *InfoTable;
|
|
UINT32 SubtableLength;
|
|
UINT32 BankCount;
|
|
ACPI_HEST_IA_ERROR_BANK *BankTable;
|
|
+ UINT16 SubtableType;
|
|
|
|
|
|
/* Main table */
|
|
@@ -1157,10 +1158,11 @@ AcpiDmDumpHest (
|
|
/* Subtables */
|
|
|
|
Subtable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset);
|
|
- while (Offset < Table->Length)
|
|
+ while (Offset < Length)
|
|
{
|
|
BankCount = 0;
|
|
- switch (Subtable->Type)
|
|
+ SubtableType = Subtable->Type;
|
|
+ switch (SubtableType)
|
|
{
|
|
case ACPI_HEST_TYPE_IA32_CHECK:
|
|
|
|
@@ -1227,7 +1229,7 @@ AcpiDmDumpHest (
|
|
/* Cannot continue on unknown type - no length */
|
|
|
|
AcpiOsPrintf ("\n**** Unknown HEST subtable type 0x%X\n",
|
|
- Subtable->Type);
|
|
+ SubtableType);
|
|
return;
|
|
}
|
|
|
|
Index: acpica-unix2-20200925/source/compiler/dttable1.c
|
|
===================================================================
|
|
--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
|
|
+++ acpica-unix2-20200925/source/compiler/dttable1.c
|
|
@@ -1133,6 +1133,7 @@ DtCompileHest (
|
|
DT_FIELD *SubtableStart;
|
|
ACPI_DMTABLE_INFO *InfoTable;
|
|
UINT16 Type;
|
|
+ UINT16 Tmp16;
|
|
UINT32 BankCount;
|
|
|
|
|
|
@@ -1151,7 +1152,8 @@ DtCompileHest (
|
|
/* Get subtable type */
|
|
|
|
SubtableStart = *PFieldList;
|
|
- DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0);
|
|
+ DtCompileInteger ((UINT8 *) &Tmp16, *PFieldList, 2, 0);
|
|
+ Type = AcpiUtReadUint32(&Tmp16);
|
|
|
|
switch (Type)
|
|
{
|