The package rpms/acpica-tools.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/acpica-tools.git/commit/?id=99f17483....
Change: -%ifnarch s390x
Thanks.
Full change: ============
commit c88a2bebac3054667c7a062f6a6328163d1710de Author: Al Stone ahs3@redhat.com Date: Fri Aug 18 19:01:16 2017 -0600
Clean up unused patch
Signed-off-by: Al Stone ahs3@redhat.com
diff --git a/update-big-endian.patch b/update-big-endian.patch deleted file mode 100644 index 2c859f0..0000000 --- a/update-big-endian.patch +++ /dev/null @@ -1,3949 +0,0 @@ -Index: acpica-unix2-20170728/source/common/acfileio.c -=================================================================== ---- acpica-unix2-20170728.orig/source/common/acfileio.c -+++ acpica-unix2-20170728/source/common/acfileio.c -@@ -280,6 +280,7 @@ AcGetOneTableFromFile ( - ACPI_TABLE_HEADER *Table; - INT32 Count; - long TableOffset; -+ UINT32 TableLen; - - - *ReturnTable = NULL; -@@ -319,7 +320,8 @@ AcGetOneTableFromFile ( - - /* Allocate a buffer for the entire table */ - -- Table = AcpiOsAllocate ((ACPI_SIZE) TableHeader.Length); -+ ACPI_MOVE_32_TO_32(&TableLen, &TableHeader.Length); -+ Table = AcpiOsAllocate ((ACPI_SIZE) TableLen); - if (!Table) - { - return (AE_NO_MEMORY); -@@ -329,8 +331,8 @@ AcGetOneTableFromFile ( - - fseek (File, TableOffset, SEEK_SET); - -- Count = fread (Table, 1, TableHeader.Length, File); -- if (Count != (INT32) TableHeader.Length) -+ Count = fread (Table, 1, TableLen, File); -+ if (Count != (INT32) TableLen) - { - Status = AE_ERROR; - goto ErrorExit; -@@ -338,7 +340,7 @@ AcGetOneTableFromFile ( - - /* Validate the checksum (just issue a warning) */ - -- Status = AcpiTbVerifyChecksum (Table, TableHeader.Length); -+ Status = AcpiTbVerifyChecksum (Table, TableLen); - if (ACPI_FAILURE (Status)) - { - Status = AcCheckTextModeCorruption (Table); -@@ -430,6 +432,7 @@ AcValidateTableHeader ( - ACPI_SIZE Actual; - long OriginalOffset; - UINT32 FileSize; -+ UINT32 TableLength; - UINT32 i; - - -@@ -459,11 +462,12 @@ AcValidateTableHeader ( - /* Validate table length against bytes remaining in the file */ - - FileSize = CmGetFileSize (File); -- if (TableHeader.Length > (UINT32) (FileSize - TableOffset)) -+ ACPI_MOVE_32_TO_32(&TableLength, &TableHeader.Length); -+ if (TableLength > (UINT32) (FileSize - TableOffset)) - { - fprintf (stderr, "Table [%4.4s] is too long for file - " - "needs: 0x%.2X, remaining in file: 0x%.2X\n", -- TableHeader.Signature, TableHeader.Length, -+ TableHeader.Signature, TableLength, - (UINT32) (FileSize - TableOffset)); - return (AE_BAD_HEADER); - } -Index: acpica-unix2-20170728/source/common/dmtable.c -=================================================================== ---- acpica-unix2-20170728.orig/source/common/dmtable.c -+++ acpica-unix2-20170728/source/common/dmtable.c -@@ -524,7 +524,7 @@ AcpiDmDumpDataTable ( - */ - if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FACS)) - { -- Length = Table->Length; -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFacs); - if (ACPI_FAILURE (Status)) - { -@@ -538,13 +538,14 @@ AcpiDmDumpDataTable ( - else if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_S3PT)) - { - Length = AcpiDmDumpS3pt (Table); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - } - else - { - /* - * All other tables must use the common ACPI table header, dump it now - */ -- Length = Table->Length; -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHeader); - if (ACPI_FAILURE (Status)) - { -@@ -755,6 +756,7 @@ AcpiDmDumpTable ( - BOOLEAN LastOutputBlankLine = FALSE; - ACPI_STATUS Status; - char RepairedName[8]; -+ UINT16 Val16; - - - if (!Info) -@@ -1149,8 +1151,9 @@ AcpiDmDumpTable ( - /* Checksum, display and validate */ - - AcpiOsPrintf ("%2.2X", *Target); -- Temp8 = AcpiDmGenerateChecksum (Table, -- ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length, -+ ACPI_MOVE_32_TO_32(&Temp32, -+ &ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length); -+ Temp8 = AcpiDmGenerateChecksum (Table, Temp32, - ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum); - - if (Temp8 != ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum) -@@ -1215,14 +1218,14 @@ AcpiDmDumpTable ( - - /* DMAR subtable types */ - -- Temp16 = ACPI_GET16 (Target); -+ Val16 = ACPI_GET16 (Target); -+ ACPI_MOVE_16_TO_16(&Temp16, &Val16); - if (Temp16 > ACPI_DMAR_TYPE_RESERVED) - { - Temp16 = ACPI_DMAR_TYPE_RESERVED; - } - -- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target), -- AcpiDmDmarSubnames[Temp16]); -+ AcpiOsPrintf (UINT16_FORMAT, Temp16, AcpiDmDmarSubnames[Temp16]); - break; - - case ACPI_DMT_DMAR_SCOPE: -@@ -1313,14 +1316,14 @@ AcpiDmDumpTable ( - - /* HEST subtable types */ - -- Temp16 = ACPI_GET16 (Target); -+ Val16 = ACPI_GET16 (Target); -+ ACPI_MOVE_16_TO_16(&Temp16, &Val16); - if (Temp16 > ACPI_HEST_TYPE_RESERVED) - { - Temp16 = ACPI_HEST_TYPE_RESERVED; - } - -- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target), -- AcpiDmHestSubnames[Temp16]); -+ AcpiOsPrintf (UINT16_FORMAT, Temp16, AcpiDmHestSubnames[Temp16]); - break; - - case ACPI_DMT_HESTNTFY: -@@ -1400,13 +1403,14 @@ AcpiDmDumpTable ( - - /* NFIT subtable types */ - -- Temp16 = ACPI_GET16 (Target); -+ Val16 = ACPI_GET16 (Target); -+ ACPI_MOVE_16_TO_16(&Temp16, &Val16); - if (Temp16 > ACPI_NFIT_TYPE_RESERVED) - { - Temp16 = ACPI_NFIT_TYPE_RESERVED; - } - -- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target), -+ AcpiOsPrintf (UINT16_FORMAT, Temp16, - AcpiDmNfitSubnames[Temp16]); - break; - -Index: acpica-unix2-20170728/source/common/dmtables.c -=================================================================== ---- acpica-unix2-20170728.orig/source/common/dmtables.c -+++ acpica-unix2-20170728/source/common/dmtables.c -@@ -142,7 +142,9 @@ AdCreateTableHeader ( - ACPI_TABLE_HEADER *Table) - { - UINT8 Checksum; -- -+ UINT32 TableLen; -+ UINT32 OemRev; -+ UINT32 CompilerRev; - - /* Reset globals for External statements */ - -@@ -154,9 +156,10 @@ AdCreateTableHeader ( - */ - AdDisassemblerHeader (Filename, ACPI_IS_AML_TABLE); - -+ ACPI_MOVE_32_TO_32(&TableLen, &Table->Length); - AcpiOsPrintf (" * Original Table Header:\n"); - AcpiOsPrintf (" * Signature "%4.4s"\n", Table->Signature); -- AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length); -+ AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", TableLen, TableLen); - - /* Print and validate the revision */ - -@@ -188,7 +191,7 @@ AdCreateTableHeader ( - - AcpiOsPrintf ("\n * Checksum 0x%2.2X", Table->Checksum); - -- Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length); -+ Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), TableLen); - if (Checksum) - { - AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X", -@@ -198,9 +201,11 @@ AdCreateTableHeader ( - AcpiOsPrintf ("\n"); - AcpiOsPrintf (" * OEM ID "%.6s"\n", Table->OemId); - AcpiOsPrintf (" * OEM Table ID "%.8s"\n", Table->OemTableId); -- AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision); -+ ACPI_MOVE_32_TO_32(&OemRev, &Table->OemRevision); -+ AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", OemRev, OemRev); - AcpiOsPrintf (" * Compiler ID "%.4s"\n", Table->AslCompilerId); -- AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision); -+ ACPI_MOVE_32_TO_32(&CompilerRev, &Table->AslCompilerRevision); -+ AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", CompilerRev, CompilerRev); - AcpiOsPrintf (" */\n"); - - /* -@@ -221,7 +226,7 @@ AdCreateTableHeader ( - AcpiOsPrintf ( - "DefinitionBlock ("", "%4.4s", %hu, "%.6s", "%.8s", 0x%8.8X)\n", - Table->Signature, Table->Revision, -- Table->OemId, Table->OemTableId, Table->OemRevision); -+ Table->OemId, Table->OemTableId, OemRev); - } - - -@@ -396,7 +401,8 @@ AdParseTable ( - - fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature); - -- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER); -+ ACPI_MOVE_32_TO_32(&AmlLength, &Table->Length); -+ AmlLength -= sizeof (ACPI_TABLE_HEADER); - AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)); - ASL_CV_INIT_FILETREE(Table, AmlStart, AmlLength); - -Index: acpica-unix2-20170728/source/common/dmtbdump.c -=================================================================== ---- acpica-unix2-20170728.orig/source/common/dmtbdump.c -+++ acpica-unix2-20170728/source/common/dmtbdump.c -@@ -277,6 +277,8 @@ AcpiDmDumpRsdt ( - UINT32 Entries; - UINT32 Offset; - UINT32 i; -+ UINT32 Length; -+ UINT32 Address; - - - /* Point to start of table pointer array */ -@@ -286,12 +288,14 @@ AcpiDmDumpRsdt ( - - /* RSDT uses 32-bit pointers */ - -- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Entries = (Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32); - - for (i = 0; i < Entries; i++) - { - AcpiDmLineHeader2 (Offset, sizeof (UINT32), "ACPI Table Address", i); -- AcpiOsPrintf ("%8.8X\n", Array[i]); -+ ACPI_MOVE_32_TO_32(&Address, &Array[i]); -+ AcpiOsPrintf ("%8.8X\n", Address); - Offset += sizeof (UINT32); - } - } -@@ -317,6 +321,8 @@ AcpiDmDumpXsdt ( - UINT32 Entries; - UINT32 Offset; - UINT32 i; -+ UINT32 Length; -+ UINT64 Address; - - - /* Point to start of table pointer array */ -@@ -326,12 +332,14 @@ AcpiDmDumpXsdt ( - - /* XSDT uses 64-bit pointers */ - -- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Entries = (Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64); - - for (i = 0; i < Entries; i++) - { - AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i); -- AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Array[i])); -+ ACPI_MOVE_64_TO_64(&Address, &Array[i]); -+ AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Address)); - Offset += sizeof (UINT64); - } - } -@@ -524,17 +532,21 @@ AcpiDmDumpAsf ( - UINT32 DataOffset = 0; - UINT32 i; - UINT8 Type; -+ UINT32 Len; -+ UINT16 SubLen; - - - /* No main table, only subtables */ - -+ ACPI_MOVE_32_TO_32(&Len, &Table->Length); - SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Len) - { - /* Common subtable header */ - -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -- SubTable->Header.Length, AcpiDmTableInfoAsfHdr); -+ ACPI_MOVE_16_TO_16(&SubLen, &SubTable->Header.Length); -+ Status = AcpiDmDumpTable (Len, Offset, SubTable, -+ SubLen, AcpiDmTableInfoAsfHdr); - if (ACPI_FAILURE (Status)) - { - return; -@@ -591,8 +603,7 @@ AcpiDmDumpAsf ( - return; - } - -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -- SubTable->Header.Length, InfoTable); -+ Status = AcpiDmDumpTable (Len, Offset, SubTable, SubLen, InfoTable); - if (ACPI_FAILURE (Status)) - { - return; -@@ -608,7 +619,7 @@ AcpiDmDumpAsf ( - for (i = 0; i < DataCount; i++) - { - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, DataOffset, -+ Status = AcpiDmDumpTable (Len, DataOffset, - DataTable, DataLength, DataInfoTable); - if (ACPI_FAILURE (Status)) - { -@@ -654,15 +665,14 @@ AcpiDmDumpAsf ( - - /* Point to next subtable */ - -- if (!SubTable->Header.Length) -+ if (!SubLen) - { - AcpiOsPrintf ("Invalid zero subtable header length\n"); - return; - } - -- Offset += SubTable->Header.Length; -- SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, -- SubTable->Header.Length); -+ Offset += SubLen; -+ SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, SubLen); - } - } - -@@ -686,12 +696,13 @@ AcpiDmDumpCpep ( - { - ACPI_STATUS Status; - ACPI_CPEP_POLLING *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_CPEP); - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoCpep); - if (ACPI_FAILURE (Status)) - { -@@ -701,7 +712,7 @@ AcpiDmDumpCpep ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -741,7 +752,10 @@ AcpiDmDumpCsrt ( - ACPI_CSRT_GROUP *SubTable; - ACPI_CSRT_SHARED_INFO *SharedInfoTable; - ACPI_CSRT_DESCRIPTOR *SubSubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; -+ UINT32 SubLength; -+ UINT32 SubSubLength; -+ UINT32 SharedInfoLength; - UINT32 Offset = sizeof (ACPI_TABLE_CSRT); - UINT32 SubOffset; - UINT32 SubSubOffset; -@@ -752,14 +766,16 @@ AcpiDmDumpCsrt ( - - /* Subtables (Resource Groups) */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - SubTable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Resource group subtable */ - - AcpiOsPrintf ("\n"); -+ ACPI_MOVE_32_TO_32(&SubLength, &SubTable->Length); - Status = AcpiDmDumpTable (Length, Offset, SubTable, -- SubTable->Length, AcpiDmTableInfoCsrt0); -+ SubLength, AcpiDmTableInfoCsrt0); - if (ACPI_FAILURE (Status)) - { - return; -@@ -779,19 +795,20 @@ AcpiDmDumpCsrt ( - return; - } - -- SubOffset += SubTable->SharedInfoLength; -+ ACPI_MOVE_32_TO_32(&SharedInfoLength, &SubTable->SharedInfoLength); -+ SubOffset += SharedInfoLength; - - /* Sub-Subtables (Resource Descriptors) */ - - SubSubTable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, Table, - Offset + SubOffset); - -- while ((SubOffset < SubTable->Length) && -- ((Offset + SubOffset) < Table->Length)) -+ while ((SubOffset < SubLength) && ((Offset + SubOffset) < Length)) - { - AcpiOsPrintf ("\n"); -+ ACPI_MOVE_32_TO_32(&SubSubLength, &SubSubTable->Length); - Status = AcpiDmDumpTable (Length, Offset + SubOffset, SubSubTable, -- SubSubTable->Length, AcpiDmTableInfoCsrt2); -+ SubSubLength, AcpiDmTableInfoCsrt2); - if (ACPI_FAILURE (Status)) - { - return; -@@ -801,7 +818,7 @@ AcpiDmDumpCsrt ( - - /* Resource-specific info buffer */ - -- InfoLength = SubSubTable->Length - SubSubOffset; -+ InfoLength = SubSubLength - SubSubOffset; - if (InfoLength) - { - Status = AcpiDmDumpTable (Length, -@@ -816,16 +833,15 @@ AcpiDmDumpCsrt ( - - /* Point to next sub-subtable */ - -- SubOffset += SubSubTable->Length; -+ SubOffset += SubSubLength; - SubSubTable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, SubSubTable, -- SubSubTable->Length); -+ SubSubLength); - } - - /* Point to next subtable */ - -- Offset += SubTable->Length; -- SubTable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, SubTable, -- SubTable->Length); -+ Offset += SubLength; -+ SubTable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, SubTable, SubLength); - } - } - -@@ -849,16 +865,20 @@ AcpiDmDumpDbg2 ( - { - ACPI_STATUS Status; - ACPI_DBG2_DEVICE *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; -+ UINT16 SubLength; - UINT32 Offset = sizeof (ACPI_TABLE_DBG2); - UINT32 i; - UINT32 ArrayOffset; - UINT32 AbsoluteOffset; - UINT8 *Array; -+ UINT16 Tmp16; -+ UINT16 AlsoTmp16; - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDbg2); - if (ACPI_FAILURE (Status)) - { -@@ -868,11 +888,12 @@ AcpiDmDumpDbg2 ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - AcpiOsPrintf ("\n"); -+ ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length); - Status = AcpiDmDumpTable (Length, Offset, SubTable, -- SubTable->Length, AcpiDmTableInfoDbg2Device); -+ SubLength, AcpiDmTableInfoDbg2Device); - if (ACPI_FAILURE (Status)) - { - return; -@@ -882,13 +903,13 @@ AcpiDmDumpDbg2 ( - - for (i = 0; i < SubTable->RegisterCount; i++) - { -- ArrayOffset = SubTable->BaseAddressOffset + -- (sizeof (ACPI_GENERIC_ADDRESS) * i); -+ ACPI_MOVE_16_TO_16(&Tmp16, &SubTable->BaseAddressOffset); -+ ArrayOffset = Tmp16 + (sizeof (ACPI_GENERIC_ADDRESS) * i); - AbsoluteOffset = Offset + ArrayOffset; - Array = (UINT8 *) SubTable + ArrayOffset; - - Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, -- SubTable->Length, AcpiDmTableInfoDbg2Addr); -+ SubLength, AcpiDmTableInfoDbg2Addr); - if (ACPI_FAILURE (Status)) - { - return; -@@ -899,13 +920,13 @@ AcpiDmDumpDbg2 ( - - for (i = 0; i < SubTable->RegisterCount; i++) - { -- ArrayOffset = SubTable->AddressSizeOffset + -- (sizeof (UINT32) * i); -+ ACPI_MOVE_16_TO_16(&Tmp16, &SubTable->AddressSizeOffset); -+ ArrayOffset = Tmp16 + (sizeof (UINT32) * i); - AbsoluteOffset = Offset + ArrayOffset; - Array = (UINT8 *) SubTable + ArrayOffset; - - Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, -- SubTable->Length, AcpiDmTableInfoDbg2Size); -+ SubLength, AcpiDmTableInfoDbg2Size); - if (ACPI_FAILURE (Status)) - { - return; -@@ -915,12 +936,13 @@ AcpiDmDumpDbg2 ( - /* Dump the Namestring (required) */ - - AcpiOsPrintf ("\n"); -- ArrayOffset = SubTable->NamepathOffset; -+ ACPI_MOVE_16_TO_16(&Tmp16, &SubTable->NamepathOffset); -+ ArrayOffset = Tmp16; - AbsoluteOffset = Offset + ArrayOffset; - Array = (UINT8 *) SubTable + ArrayOffset; - - Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, -- SubTable->Length, AcpiDmTableInfoDbg2Name); -+ SubLength, AcpiDmTableInfoDbg2Name); - if (ACPI_FAILURE (Status)) - { - return; -@@ -930,9 +952,10 @@ AcpiDmDumpDbg2 ( - - if (SubTable->OemDataOffset) - { -- Status = AcpiDmDumpTable (Length, Offset + SubTable->OemDataOffset, -- Table, SubTable->OemDataLength, -- AcpiDmTableInfoDbg2OemData); -+ ACPI_MOVE_16_TO_16(&Tmp16, &SubTable->OemDataOffset); -+ ACPI_MOVE_16_TO_16(&AlsoTmp16, &SubTable->OemDataLength); -+ Status = AcpiDmDumpTable (Length, Offset + Tmp16, -+ Table, AlsoTmp16, AcpiDmTableInfoDbg2OemData); - if (ACPI_FAILURE (Status)) - { - return; -@@ -941,9 +964,9 @@ AcpiDmDumpDbg2 ( - - /* Point to next subtable */ - -- Offset += SubTable->Length; -+ Offset += SubLength; - SubTable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, SubTable, -- SubTable->Length); -+ SubLength); - } - } - -@@ -967,17 +990,20 @@ AcpiDmDumpDmar ( - { - ACPI_STATUS Status; - ACPI_DMAR_HEADER *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; -+ UINT16 SubLength; - UINT32 Offset = sizeof (ACPI_TABLE_DMAR); - ACPI_DMTABLE_INFO *InfoTable; - ACPI_DMAR_DEVICE_SCOPE *ScopeTable; - UINT32 ScopeOffset; - UINT8 *PciPath; - UINT32 PathOffset; -+ UINT16 SubType; - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDmar); - if (ACPI_FAILURE (Status)) - { -@@ -987,13 +1013,14 @@ AcpiDmDumpDmar ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -+ ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length); - Status = AcpiDmDumpTable (Length, Offset, SubTable, -- SubTable->Length, AcpiDmTableInfoDmarHdr); -+ SubLength, AcpiDmTableInfoDmarHdr); - if (ACPI_FAILURE (Status)) - { - return; -@@ -1001,7 +1028,8 @@ AcpiDmDumpDmar ( - - AcpiOsPrintf ("\n"); - -- switch (SubTable->Type) -+ ACPI_MOVE_16_TO_16(&SubType, &SubTable->Type); -+ switch (SubType) - { - case ACPI_DMAR_TYPE_HARDWARE_UNIT: - -@@ -1036,12 +1064,12 @@ AcpiDmDumpDmar ( - default: - - AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n", -- SubTable->Type); -+ SubType); - return; - } - - Status = AcpiDmDumpTable (Length, Offset, SubTable, -- SubTable->Length, InfoTable); -+ SubLength, InfoTable); - if (ACPI_FAILURE (Status)) - { - return; -@@ -1050,8 +1078,8 @@ AcpiDmDumpDmar ( - /* - * Dump the optional device scope entries - */ -- if ((SubTable->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) || -- (SubTable->Type == ACPI_DMAR_TYPE_NAMESPACE)) -+ if ((SubType == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) || -+ (SubType == ACPI_DMAR_TYPE_NAMESPACE)) - { - /* These types do not support device scopes */ - -@@ -1059,7 +1087,7 @@ AcpiDmDumpDmar ( - } - - ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, SubTable, ScopeOffset); -- while (ScopeOffset < SubTable->Length) -+ while (ScopeOffset < SubLength) - { - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable, -@@ -1100,9 +1128,8 @@ AcpiDmDumpDmar ( - NextSubtable: - /* Point to next subtable */ - -- Offset += SubTable->Length; -- SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, -- SubTable->Length); -+ Offset += SubLength; -+ SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, SubLength); - } - } - -@@ -1129,12 +1156,15 @@ AcpiDmDumpDrtm ( - ACPI_DRTM_RESOURCE_LIST *DrtmRl; - ACPI_DRTM_DPS_ID *DrtmDps; - UINT32 Count; -+ UINT32 ValidatedCount; -+ UINT32 ResourceCount; -+ UINT32 Length; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, -- AcpiDmTableInfoDrtm); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDrtm); - if (ACPI_FAILURE (Status)) - { - return; -@@ -1148,7 +1178,7 @@ AcpiDmDumpDrtm ( - - DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset); - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, -+ Status = AcpiDmDumpTable (Length, Offset, - DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables), - AcpiDmTableInfoDrtm0); - if (ACPI_FAILURE (Status)) -@@ -1161,10 +1191,11 @@ AcpiDmDumpDrtm ( - /* Dump Validated table addresses */ - - Count = 0; -- while ((Offset < Table->Length) && -- (DrtmVtl->ValidatedTableCount > Count)) -+ ACPI_MOVE_32_TO_32(&ValidatedCount, &DrtmVtl->ValidatedTableCount); -+ while ((Offset < Length) && -+ (ValidatedCount > Count)) - { -- Status = AcpiDmDumpTable (Table->Length, Offset, -+ Status = AcpiDmDumpTable (Length, Offset, - ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64), - AcpiDmTableInfoDrtm0a); - if (ACPI_FAILURE (Status)) -@@ -1180,7 +1211,7 @@ AcpiDmDumpDrtm ( - - DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset); - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, -+ Status = AcpiDmDumpTable (Length, Offset, - DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources), - AcpiDmTableInfoDrtm1); - if (ACPI_FAILURE (Status)) -@@ -1193,10 +1224,11 @@ AcpiDmDumpDrtm ( - /* Dump the Resource List */ - - Count = 0; -- while ((Offset < Table->Length) && -- (DrtmRl->ResourceCount > Count)) -+ ACPI_MOVE_32_TO_32(&ResourceCount, &DrtmRl->ResourceCount); -+ while ((Offset < Length) && -+ (ResourceCount > Count)) - { -- Status = AcpiDmDumpTable (Table->Length, Offset, -+ Status = AcpiDmDumpTable (Length, Offset, - ACPI_ADD_PTR (void, Table, Offset), - sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a); - if (ACPI_FAILURE (Status)) -@@ -1212,7 +1244,7 @@ AcpiDmDumpDrtm ( - - DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset); - AcpiOsPrintf ("\n"); -- (void) AcpiDmDumpTable (Table->Length, Offset, -+ (void) AcpiDmDumpTable (Length, Offset, - DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2); - } - -@@ -1236,12 +1268,13 @@ AcpiDmDumpEinj ( - { - ACPI_STATUS Status; - ACPI_WHEA_HEADER *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_EINJ); - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoEinj); - if (ACPI_FAILURE (Status)) - { -@@ -1251,7 +1284,7 @@ AcpiDmDumpEinj ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -1289,12 +1322,13 @@ AcpiDmDumpErst ( - { - ACPI_STATUS Status; - ACPI_WHEA_HEADER *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_ERST); - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoErst); - if (ACPI_FAILURE (Status)) - { -@@ -1304,7 +1338,7 @@ AcpiDmDumpErst ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -1342,17 +1376,19 @@ AcpiDmDumpFpdt ( - { - ACPI_STATUS Status; - ACPI_FPDT_HEADER *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_FPDT); - ACPI_DMTABLE_INFO *InfoTable; -+ UINT16 Type; - - - /* There is no main table (other than the standard ACPI header) */ - - /* Subtables */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - SubTable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - -@@ -1364,7 +1400,8 @@ AcpiDmDumpFpdt ( - return; - } - -- switch (SubTable->Type) -+ ACPI_MOVE_16_TO_16(&Type, &SubTable->Type); -+ switch (Type) - { - case ACPI_FPDT_TYPE_BOOT: - -@@ -1378,8 +1415,7 @@ AcpiDmDumpFpdt ( - - default: - -- AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", -- SubTable->Type); -+ AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", Type); - - /* Attempt to continue */ - -@@ -1427,16 +1463,19 @@ AcpiDmDumpGtdt ( - { - ACPI_STATUS Status; - ACPI_GTDT_HEADER *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; -+ UINT16 SubLength; - UINT32 Offset = sizeof (ACPI_TABLE_GTDT); - ACPI_DMTABLE_INFO *InfoTable; - UINT32 SubTableLength; - UINT32 GtCount; -+ UINT32 Tmp32; - ACPI_GTDT_TIMER_ENTRY *GtxTable; - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoGtdt); - if (ACPI_FAILURE (Status)) - { -@@ -1446,7 +1485,7 @@ AcpiDmDumpGtdt ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_GTDT_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - -@@ -1464,8 +1503,9 @@ AcpiDmDumpGtdt ( - case ACPI_GTDT_TYPE_TIMER_BLOCK: - - SubTableLength = sizeof (ACPI_GTDT_TIMER_BLOCK); -- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, -+ Tmp32 = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, - SubTable))->TimerCount; -+ ACPI_MOVE_32_TO_32(&GtCount, &Tmp32); - - InfoTable = AcpiDmTableInfoGtdt0; - break; -@@ -1486,8 +1526,9 @@ AcpiDmDumpGtdt ( - return; - } - -+ ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length); - Status = AcpiDmDumpTable (Length, Offset, SubTable, -- SubTable->Length, InfoTable); -+ SubLength, InfoTable); - if (ACPI_FAILURE (Status)) - { - return; -@@ -1546,16 +1587,18 @@ AcpiDmDumpHest ( - { - ACPI_STATUS Status; - ACPI_HEST_HEADER *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_HEST); - ACPI_DMTABLE_INFO *InfoTable; - UINT32 SubTableLength; - UINT32 BankCount; - ACPI_HEST_IA_ERROR_BANK *BankTable; -+ UINT16 SubType; - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHest); - if (ACPI_FAILURE (Status)) - { -@@ -1565,10 +1608,11 @@ AcpiDmDumpHest ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - BankCount = 0; -- switch (SubTable->Type) -+ ACPI_MOVE_16_TO_16(&SubType, &SubTable->Type); -+ switch (SubType) - { - case ACPI_HEST_TYPE_IA32_CHECK: - -@@ -1902,15 +1946,21 @@ AcpiDmDumpIort ( - ACPI_IORT_SMMU *IortSmmu = NULL; - UINT32 Offset; - UINT32 NodeOffset; -+ UINT16 NodeLength; - UINT32 Length; - ACPI_DMTABLE_INFO *InfoTable; - char *String; - UINT32 i; -- -+ UINT32 TableLen; -+ UINT32 ItsCount; -+ UINT32 MappingCount; -+ UINT32 CtxIntCount; -+ UINT32 PmuIntCount; - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIort); -+ ACPI_MOVE_32_TO_32(&TableLen, &Table->Length); -+ Status = AcpiDmDumpTable (TableLen, 0, Table, 0, AcpiDmTableInfoIort); - if (ACPI_FAILURE (Status)) - { - return; -@@ -1921,18 +1971,19 @@ AcpiDmDumpIort ( - - /* Dump the OptionalPadding (optional) */ - -- if (Iort->NodeOffset > Offset) -+ ACPI_MOVE_32_TO_32(&NodeOffset, &Iort->NodeOffset); -+ if (NodeOffset > Offset) - { -- Status = AcpiDmDumpTable (Table->Length, Offset, Table, -- Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad); -+ Status = AcpiDmDumpTable (TableLen, Offset, Table, -+ NodeOffset - Offset, AcpiDmTableInfoIortPad); - if (ACPI_FAILURE (Status)) - { - return; - } - } - -- Offset = Iort->NodeOffset; -- while (Offset < Table->Length) -+ ACPI_MOVE_32_TO_32(&Offset, &Iort->NodeOffset); -+ while (Offset < TableLen) - { - /* Common subtable header */ - -@@ -1968,7 +2019,8 @@ AcpiDmDumpIort ( - case ACPI_IORT_NODE_PCI_ROOT_COMPLEX: - - InfoTable = AcpiDmTableInfoIort2; -- Length = IortNode->Length - NodeOffset; -+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length); -+ Length = NodeLength - NodeOffset; - break; - - case ACPI_IORT_NODE_SMMU: -@@ -1981,7 +2033,8 @@ AcpiDmDumpIort ( - case ACPI_IORT_NODE_SMMU_V3: - - InfoTable = AcpiDmTableInfoIort4; -- Length = IortNode->Length - NodeOffset; -+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length); -+ Length = NodeLength - NodeOffset; - break; - - default: -@@ -1991,7 +2044,8 @@ AcpiDmDumpIort ( - - /* Attempt to continue */ - -- if (!IortNode->Length) -+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length); -+ if (!NodeLength) - { - AcpiOsPrintf ("Invalid zero length IORT node\n"); - return; -@@ -2002,7 +2056,7 @@ AcpiDmDumpIort ( - /* Dump the node subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, -+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - Length, InfoTable); - if (ACPI_FAILURE (Status)) -@@ -2022,9 +2076,10 @@ AcpiDmDumpIort ( - - if (IortItsGroup) - { -- for (i = 0; i < IortItsGroup->ItsCount; i++) -+ ACPI_MOVE_32_TO_32(&ItsCount, &IortItsGroup->ItsCount); -+ for (i = 0; i < ItsCount; i++) - { -- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, -+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - 4, AcpiDmTableInfoIort0a); - NodeOffset += 4; -@@ -2036,11 +2091,11 @@ AcpiDmDumpIort ( - - /* Dump the Padding (optional) */ - -- if (IortNode->Length > NodeOffset) -+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length); -+ if (NodeLength > NodeOffset) - { -- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, -- Table, IortNode->Length - NodeOffset, -- AcpiDmTableInfoIort1a); -+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset, -+ Table, NodeLength - NodeOffset, AcpiDmTableInfoIort1a); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2057,8 +2112,8 @@ AcpiDmDumpIort ( - if (IortSmmu) - { - Length = 2 * sizeof (UINT64); -- NodeOffset = IortSmmu->GlobalInterruptOffset; -- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, -+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->GlobalInterruptOffset); -+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - Length, AcpiDmTableInfoIort3a); - if (ACPI_FAILURE (Status)) -@@ -2066,10 +2121,11 @@ AcpiDmDumpIort ( - return; - } - -- NodeOffset = IortSmmu->ContextInterruptOffset; -- for (i = 0; i < IortSmmu->ContextInterruptCount; i++) -+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->ContextInterruptOffset); -+ ACPI_MOVE_32_TO_32(&CtxIntCount, &IortSmmu->ContextInterruptCount); -+ for (i = 0; i < CtxIntCount; i++) - { -- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, -+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - 8, AcpiDmTableInfoIort3b); - if (ACPI_FAILURE (Status)) -@@ -2080,10 +2136,11 @@ AcpiDmDumpIort ( - NodeOffset += 8; - } - -- NodeOffset = IortSmmu->PmuInterruptOffset; -- for (i = 0; i < IortSmmu->PmuInterruptCount; i++) -+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->PmuInterruptOffset); -+ ACPI_MOVE_32_TO_32(&PmuIntCount, &IortSmmu->PmuInterruptCount); -+ for (i = 0; i < PmuIntCount; i++) - { -- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, -+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - 8, AcpiDmTableInfoIort3c); - if (ACPI_FAILURE (Status)) -@@ -2103,12 +2160,13 @@ AcpiDmDumpIort ( - - /* Dump the ID mappings */ - -- NodeOffset = IortNode->MappingOffset; -- for (i = 0; i < IortNode->MappingCount; i++) -+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortNode->MappingOffset); -+ ACPI_MOVE_32_TO_32(&MappingCount, &IortNode->MappingCount); -+ for (i = 0; i < MappingCount; i++) - { - AcpiOsPrintf ("\n"); - Length = sizeof (ACPI_IORT_ID_MAPPING); -- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, -+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - Length, AcpiDmTableInfoIortMap); - if (ACPI_FAILURE (Status)) -@@ -2122,8 +2180,9 @@ AcpiDmDumpIort ( - NextSubTable: - /* Point to next node subtable */ - -- Offset += IortNode->Length; -- IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, IortNode->Length); -+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length); -+ Offset += NodeLength; -+ IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeLength); - } - } - -@@ -2154,11 +2213,14 @@ AcpiDmDumpIvrs ( - ACPI_IVRS_DE_HEADER *DeviceEntry; - ACPI_IVRS_HEADER *SubTable; - ACPI_DMTABLE_INFO *InfoTable; -+ UINT32 Length; -+ UINT16 SubLength; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIvrs); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoIvrs); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2167,13 +2229,14 @@ AcpiDmDumpIvrs ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -- SubTable->Length, AcpiDmTableInfoIvrsHdr); -+ ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length); -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, -+ SubLength, AcpiDmTableInfoIvrsHdr); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2200,7 +2263,7 @@ AcpiDmDumpIvrs ( - - /* Attempt to continue */ - -- if (!SubTable->Length) -+ if (!SubLength) - { - AcpiOsPrintf ("Invalid zero length subtable\n"); - return; -@@ -2211,8 +2274,8 @@ AcpiDmDumpIvrs ( - /* Dump the subtable */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -- SubTable->Length, InfoTable); -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, -+ SubLength, InfoTable); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2226,7 +2289,7 @@ AcpiDmDumpIvrs ( - DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, SubTable, - sizeof (ACPI_IVRS_HARDWARE)); - -- while (EntryOffset < (Offset + SubTable->Length)) -+ while (EntryOffset < (Offset + SubLength)) - { - AcpiOsPrintf ("\n"); - /* -@@ -2288,7 +2351,7 @@ AcpiDmDumpIvrs ( - - /* Dump the Device Entry */ - -- Status = AcpiDmDumpTable (Table->Length, EntryOffset, -+ Status = AcpiDmDumpTable (Length, EntryOffset, - DeviceEntry, EntryLength, InfoTable); - if (ACPI_FAILURE (Status)) - { -@@ -2304,8 +2367,8 @@ AcpiDmDumpIvrs ( - NextSubTable: - /* Point to next subtable */ - -- Offset += SubTable->Length; -- SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, SubTable, SubTable->Length); -+ Offset += SubLength; -+ SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, SubTable, SubLength); - } - } - -@@ -2331,7 +2394,7 @@ AcpiDmDumpLpit ( - { - ACPI_STATUS Status; - ACPI_LPIT_HEADER *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_LPIT); - ACPI_DMTABLE_INFO *InfoTable; - UINT32 SubTableLength; -@@ -2339,8 +2402,9 @@ AcpiDmDumpLpit ( - - /* Subtables */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - SubTable = ACPI_ADD_PTR (ACPI_LPIT_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - -@@ -2404,13 +2468,14 @@ AcpiDmDumpMadt ( - { - ACPI_STATUS Status; - ACPI_SUBTABLE_HEADER *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_MADT); - ACPI_DMTABLE_INFO *InfoTable; - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMadt); - if (ACPI_FAILURE (Status)) - { -@@ -2420,7 +2485,7 @@ AcpiDmDumpMadt ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - -@@ -2566,11 +2631,13 @@ AcpiDmDumpMcfg ( - ACPI_STATUS Status; - UINT32 Offset = sizeof (ACPI_TABLE_MCFG); - ACPI_MCFG_ALLOCATION *SubTable; -+ UINT32 Len; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMcfg); -+ ACPI_MOVE_32_TO_32(&Len, &Table->Length); -+ Status = AcpiDmDumpTable (Len, 0, Table, 0, AcpiDmTableInfoMcfg); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2579,17 +2646,17 @@ AcpiDmDumpMcfg ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Len) - { -- if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length) -+ if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Len) - { - AcpiOsPrintf ("Warning: there are %u invalid trailing bytes\n", -- sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length)); -+ sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Len)); - return; - } - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Len, Offset, SubTable, - sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0); - if (ACPI_FAILURE (Status)) - { -@@ -2623,6 +2690,7 @@ AcpiDmDumpMpst ( - { - ACPI_STATUS Status; - UINT32 Offset = sizeof (ACPI_TABLE_MPST); -+ ACPI_TABLE_MPST *Mpst; - ACPI_MPST_POWER_NODE *SubTable0; - ACPI_MPST_POWER_STATE *SubTable0A; - ACPI_MPST_COMPONENT *SubTable0B; -@@ -2631,11 +2699,13 @@ AcpiDmDumpMpst ( - UINT16 SubtableCount; - UINT32 PowerStateCount; - UINT32 ComponentCount; -+ UINT32 Length; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMpst); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMpst); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2643,13 +2713,14 @@ AcpiDmDumpMpst ( - - /* Subtable: Memory Power Node(s) */ - -- SubtableCount = (ACPI_CAST_PTR (ACPI_TABLE_MPST, Table))->PowerNodeCount; -+ Mpst = ACPI_CAST_PTR (ACPI_TABLE_MPST, Table); -+ ACPI_MOVE_16_TO_16(&SubtableCount, &Mpst->PowerNodeCount); - SubTable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Table, Offset); - -- while ((Offset < Table->Length) && SubtableCount) -+ while ((Offset < Length) && SubtableCount) - { - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable0, - sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0); - if (ACPI_FAILURE (Status)) - { -@@ -2658,8 +2729,8 @@ AcpiDmDumpMpst ( - - /* Extract the sub-subtable counts */ - -- PowerStateCount = SubTable0->NumPowerStates; -- ComponentCount = SubTable0->NumPhysicalComponents; -+ ACPI_MOVE_32_TO_32(&PowerStateCount, &SubTable0->NumPowerStates); -+ ACPI_MOVE_32_TO_32(&ComponentCount, &SubTable0->NumPhysicalComponents); - Offset += sizeof (ACPI_MPST_POWER_NODE); - - /* Sub-subtables - Memory Power State Structure(s) */ -@@ -2670,7 +2741,7 @@ AcpiDmDumpMpst ( - while (PowerStateCount) - { - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0A, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable0A, - sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A); - if (ACPI_FAILURE (Status)) - { -@@ -2680,7 +2751,7 @@ AcpiDmDumpMpst ( - SubTable0A++; - PowerStateCount--; - Offset += sizeof (ACPI_MPST_POWER_STATE); -- } -+ } - - /* Sub-subtables - Physical Component ID Structure(s) */ - -@@ -2693,7 +2764,7 @@ AcpiDmDumpMpst ( - - while (ComponentCount) - { -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0B, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable0B, - sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B); - if (ACPI_FAILURE (Status)) - { -@@ -2708,17 +2779,19 @@ AcpiDmDumpMpst ( - /* Point to next Memory Power Node subtable */ - - SubtableCount--; -+ ACPI_MOVE_32_TO_32(&PowerStateCount, &SubTable0->NumPowerStates); -+ ACPI_MOVE_32_TO_32(&ComponentCount, &SubTable0->NumPhysicalComponents); - SubTable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, SubTable0, - sizeof (ACPI_MPST_POWER_NODE) + -- (sizeof (ACPI_MPST_POWER_STATE) * SubTable0->NumPowerStates) + -- (sizeof (ACPI_MPST_COMPONENT) * SubTable0->NumPhysicalComponents)); -+ (sizeof (ACPI_MPST_POWER_STATE) * PowerStateCount) + -+ (sizeof (ACPI_MPST_COMPONENT) * ComponentCount)); - } - - /* Subtable: Count of Memory Power State Characteristic structures */ - - AcpiOsPrintf ("\n"); - SubTable1 = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, SubTable0); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable1, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable1, - sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1); - if (ACPI_FAILURE (Status)) - { -@@ -2733,10 +2806,10 @@ AcpiDmDumpMpst ( - SubTable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, SubTable1, - sizeof (ACPI_MPST_DATA_HDR)); - -- while ((Offset < Table->Length) && SubtableCount) -+ while ((Offset < Length) && SubtableCount) - { - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable2, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable2, - sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2); - if (ACPI_FAILURE (Status)) - { -@@ -2769,11 +2842,13 @@ AcpiDmDumpMsct ( - ACPI_STATUS Status; - UINT32 Offset = sizeof (ACPI_TABLE_MSCT); - ACPI_MSCT_PROXIMITY *SubTable; -+ UINT32 Length; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMsct); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMsct); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2782,12 +2857,12 @@ AcpiDmDumpMsct ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, - sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0); - if (ACPI_FAILURE (Status)) - { -@@ -2822,11 +2897,13 @@ AcpiDmDumpMtmr ( - ACPI_STATUS Status; - UINT32 Offset = sizeof (ACPI_TABLE_MTMR); - ACPI_MTMR_ENTRY *SubTable; -+ UINT32 Length; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMtmr); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMtmr); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2835,12 +2912,12 @@ AcpiDmDumpMtmr ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, - sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0); - if (ACPI_FAILURE (Status)) - { -@@ -2882,11 +2959,17 @@ AcpiDmDumpNfit ( - ACPI_NFIT_SMBIOS *SmbiosInfo = NULL; - ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL; - UINT32 i; -+ UINT32 TableLength; -+ UINT16 SubLength; -+ UINT16 SubType; -+ UINT32 Count; -+ UINT16 Count16; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoNfit); -+ ACPI_MOVE_32_TO_32(&TableLength, &Table->Length); -+ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNfit); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2895,19 +2978,21 @@ AcpiDmDumpNfit ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < TableLength) - { - /* NFIT subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -- SubTable->Length, AcpiDmTableInfoNfitHdr); -+ ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length); -+ Status = AcpiDmDumpTable (TableLength, Offset, SubTable, -+ SubLength, AcpiDmTableInfoNfitHdr); - if (ACPI_FAILURE (Status)) - { - return; - } - -- switch (SubTable->Type) -+ ACPI_MOVE_16_TO_16(&SubType, &SubTable->Type); -+ switch (SubType) - { - case ACPI_NFIT_TYPE_SYSTEM_ADDRESS: - -@@ -2959,7 +3044,7 @@ AcpiDmDumpNfit ( - - /* Attempt to continue */ - -- if (!SubTable->Length) -+ if (!SubLength) - { - AcpiOsPrintf ("Invalid zero length subtable\n"); - return; -@@ -2968,8 +3053,8 @@ AcpiDmDumpNfit ( - } - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -- SubTable->Length, InfoTable); -+ Status = AcpiDmDumpTable (TableLength, Offset, SubTable, -+ SubLength, InfoTable); - if (ACPI_FAILURE (Status)) - { - return; -@@ -2977,13 +3062,14 @@ AcpiDmDumpNfit ( - - /* Per-subtable variable-length fields */ - -- switch (SubTable->Type) -+ switch (SubType) - { - case ACPI_NFIT_TYPE_INTERLEAVE: - -- for (i = 0; i < Interleave->LineCount; i++) -+ ACPI_MOVE_32_TO_32(&Count, &Interleave->LineCount); -+ for (i = 0; i < Count; i++) - { -- Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, -+ Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset, - &Interleave->LineOffset[i], - sizeof (UINT32), AcpiDmTableInfoNfit2a); - if (ACPI_FAILURE (Status)) -@@ -2997,12 +3083,11 @@ AcpiDmDumpNfit ( - - case ACPI_NFIT_TYPE_SMBIOS: - -- Length = SubTable->Length - -- sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8); -+ Length = SubLength - sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8); - - if (Length) - { -- Status = AcpiDmDumpTable (Table->Length, -+ Status = AcpiDmDumpTable (TableLength, - sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), - SmbiosInfo, - Length, AcpiDmTableInfoNfit3a); -@@ -3016,9 +3101,10 @@ AcpiDmDumpNfit ( - - case ACPI_NFIT_TYPE_FLUSH_ADDRESS: - -- for (i = 0; i < Hint->HintCount; i++) -+ ACPI_MOVE_16_TO_16(&Count16, &Hint->HintCount); -+ for (i = 0; i < Count16; i++) - { -- Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, -+ Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset, - &Hint->HintAddress[i], - sizeof (UINT64), AcpiDmTableInfoNfit6a); - if (ACPI_FAILURE (Status)) -@@ -3037,8 +3123,8 @@ AcpiDmDumpNfit ( - NextSubTable: - /* Point to next subtable */ - -- Offset += SubTable->Length; -- SubTable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, SubTable, SubTable->Length); -+ Offset += SubLength; -+ SubTable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, SubTable, SubLength); - } - } - -@@ -3063,12 +3149,13 @@ AcpiDmDumpPcct ( - ACPI_STATUS Status; - ACPI_PCCT_SUBSPACE *SubTable; - ACPI_DMTABLE_INFO *InfoTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_PCCT); - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPcct); - if (ACPI_FAILURE (Status)) - { -@@ -3078,7 +3165,7 @@ AcpiDmDumpPcct ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - -@@ -3164,16 +3251,21 @@ AcpiDmDumpPmtt ( - ACPI_PMTT_HEADER *MemSubTable; - ACPI_PMTT_HEADER *DimmSubTable; - ACPI_PMTT_DOMAIN *DomainArray; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 Offset = sizeof (ACPI_TABLE_PMTT); - UINT32 MemOffset; - UINT32 DimmOffset; - UINT32 DomainOffset; -- UINT32 DomainCount; -+ UINT16 DomainCount; -+ UINT16 SubLength; -+ UINT16 Tmp16; -+ UINT16 MemLength; -+ UINT16 DimmLength; - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPmtt); - if (ACPI_FAILURE (Status)) - { -@@ -3183,13 +3275,14 @@ AcpiDmDumpPmtt ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -+ ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length); - Status = AcpiDmDumpTable (Length, Offset, SubTable, -- SubTable->Length, AcpiDmTableInfoPmttHdr); -+ SubLength, AcpiDmTableInfoPmttHdr); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3208,7 +3301,7 @@ AcpiDmDumpPmtt ( - /* Dump the fixed-length portion of the subtable */ - - Status = AcpiDmDumpTable (Length, Offset, SubTable, -- SubTable->Length, AcpiDmTableInfoPmtt0); -+ SubLength, AcpiDmTableInfoPmtt0); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3220,15 +3313,16 @@ AcpiDmDumpPmtt ( - MemSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, SubTable, - sizeof (ACPI_PMTT_SOCKET)); - -- while (((Offset + MemOffset) < Table->Length) && -- (MemOffset < SubTable->Length)) -+ while (((Offset + MemOffset) < Length) && -+ (MemOffset < SubLength)) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -+ ACPI_MOVE_16_TO_16(&MemLength, &MemSubTable->Length); - Status = AcpiDmDumpTable (Length, - Offset + MemOffset, MemSubTable, -- MemSubTable->Length, AcpiDmTableInfoPmttHdr); -+ MemLength, AcpiDmTableInfoPmttHdr); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3248,7 +3342,7 @@ AcpiDmDumpPmtt ( - - Status = AcpiDmDumpTable (Length, - Offset + MemOffset, MemSubTable, -- MemSubTable->Length, AcpiDmTableInfoPmtt1); -+ MemLength, AcpiDmTableInfoPmtt1); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3256,13 +3350,14 @@ AcpiDmDumpPmtt ( - - /* Walk the variable count of proximity domains */ - -- DomainCount = ((ACPI_PMTT_CONTROLLER *) MemSubTable)->DomainCount; -+ Tmp16 = ((ACPI_PMTT_CONTROLLER *) MemSubTable)->DomainCount; -+ ACPI_MOVE_16_TO_16(&DomainCount, &Tmp16); - DomainOffset = sizeof (ACPI_PMTT_CONTROLLER); - DomainArray = ACPI_ADD_PTR (ACPI_PMTT_DOMAIN, MemSubTable, - sizeof (ACPI_PMTT_CONTROLLER)); - -- while (((Offset + MemOffset + DomainOffset) < Table->Length) && -- ((MemOffset + DomainOffset) < SubTable->Length) && -+ while (((Offset + MemOffset + DomainOffset) < Length) && -+ ((MemOffset + DomainOffset) < SubLength) && - DomainCount) - { - Status = AcpiDmDumpTable (Length, -@@ -3290,15 +3385,16 @@ AcpiDmDumpPmtt ( - DimmSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, MemSubTable, - DomainOffset); - -- while (((Offset + MemOffset + DimmOffset) < Table->Length) && -- (DimmOffset < MemSubTable->Length)) -+ while (((Offset + MemOffset + DimmOffset) < Length) && -+ (DimmOffset < MemLength)) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -+ ACPI_MOVE_16_TO_16(&DimmLength, &DimmSubTable->Length); - Status = AcpiDmDumpTable (Length, - Offset + MemOffset + DimmOffset, DimmSubTable, -- DimmSubTable->Length, AcpiDmTableInfoPmttHdr); -+ DimmLength, AcpiDmTableInfoPmttHdr); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3318,7 +3414,7 @@ AcpiDmDumpPmtt ( - - Status = AcpiDmDumpTable (Length, - Offset + MemOffset + DimmOffset, DimmSubTable, -- DimmSubTable->Length, AcpiDmTableInfoPmtt2); -+ DimmLength, AcpiDmTableInfoPmtt2); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3326,23 +3422,22 @@ AcpiDmDumpPmtt ( - - /* Point to next DIMM subtable */ - -- DimmOffset += DimmSubTable->Length; -+ DimmOffset += DimmLength; - DimmSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, -- DimmSubTable, DimmSubTable->Length); -+ DimmSubTable, DimmLength); - } - - /* Point to next Controller subtable */ - -- MemOffset += MemSubTable->Length; -+ MemOffset += MemLength; - MemSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, -- MemSubTable, MemSubTable->Length); -+ MemSubTable, MemLength); - } - - /* Point to next Socket subtable */ - -- Offset += SubTable->Length; -- SubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, -- SubTable, SubTable->Length); -+ Offset += SubLength; -+ SubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, SubTable, SubLength); - } - } - -@@ -3498,6 +3593,8 @@ AcpiDmDumpS3pt ( - ACPI_FPDT_HEADER *SubTable; - ACPI_DMTABLE_INFO *InfoTable; - ACPI_TABLE_S3PT *S3ptTable = ACPI_CAST_PTR (ACPI_TABLE_S3PT, Tables); -+ UINT32 Length; -+ UINT16 SubType; - - - /* Main table */ -@@ -3508,20 +3605,22 @@ AcpiDmDumpS3pt ( - return 0; - } - -+ ACPI_MOVE_32_TO_32(&Length, &S3ptTable->Length); - SubTable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, S3ptTable, Offset); -- while (Offset < S3ptTable->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (S3ptTable->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoS3ptHdr); - if (ACPI_FAILURE (Status)) - { - return 0; - } - -- switch (SubTable->Type) -+ ACPI_MOVE_16_TO_16(&SubType, &SubTable->Type); -+ switch (SubType) - { - case ACPI_S3PT_TYPE_RESUME: - -@@ -3536,7 +3635,7 @@ AcpiDmDumpS3pt ( - default: - - AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n", -- SubTable->Type); -+ SubType); - - /* Attempt to continue */ - -@@ -3549,7 +3648,7 @@ AcpiDmDumpS3pt ( - } - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (S3ptTable->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, InfoTable); - if (ACPI_FAILURE (Status)) - { -@@ -3583,9 +3682,11 @@ void - AcpiDmDumpSlic ( - ACPI_TABLE_HEADER *Table) - { -+ UINT32 Length; - -- (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table, -- Table->Length - sizeof (*Table), AcpiDmTableInfoSlic); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ (void) AcpiDmDumpTable (Length, sizeof (ACPI_TABLE_HEADER), Table, -+ Length - sizeof (*Table), AcpiDmTableInfoSlic); - } - - -@@ -3608,14 +3709,17 @@ AcpiDmDumpSlit ( - ACPI_STATUS Status; - UINT32 Offset; - UINT8 *Row; -- UINT32 Localities; -+ UINT64 Localities; - UINT32 i; - UINT32 j; -+ UINT32 Length; -+ UINT64 Tmp64; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSlit); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSlit); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3623,7 +3727,8 @@ AcpiDmDumpSlit ( - - /* Display the Locality NxN Matrix */ - -- Localities = (UINT32) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount; -+ Tmp64 = (UINT64) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount; -+ ACPI_MOVE_64_TO_64(&Localities, &Tmp64); - Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]); - Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry; - -@@ -3636,7 +3741,7 @@ AcpiDmDumpSlit ( - { - /* Check for beyond EOT */ - -- if (Offset >= Table->Length) -+ if (Offset >= Length) - { - AcpiOsPrintf ( - "\n**** Not enough room in table for all localities\n"); -@@ -3688,11 +3793,13 @@ AcpiDmDumpSrat ( - UINT32 Offset = sizeof (ACPI_TABLE_SRAT); - ACPI_SUBTABLE_HEADER *SubTable; - ACPI_DMTABLE_INFO *InfoTable; -+ UINT32 Length; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSrat); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSrat); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3701,12 +3808,12 @@ AcpiDmDumpSrat ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoSratHdr); - if (ACPI_FAILURE (Status)) - { -@@ -3755,7 +3862,7 @@ AcpiDmDumpSrat ( - } - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, InfoTable); - if (ACPI_FAILURE (Status)) - { -@@ -3792,13 +3899,14 @@ AcpiDmDumpStao ( - { - ACPI_STATUS Status; - char *Namepath; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT32 StringLength; - UINT32 Offset = sizeof (ACPI_TABLE_STAO); - - - /* Main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoStao); - if (ACPI_FAILURE (Status)) - { -@@ -3807,7 +3915,7 @@ AcpiDmDumpStao ( - - /* The rest of the table consists of Namepath strings */ - -- while (Offset < Table->Length) -+ while (Offset < Length) - { - Namepath = ACPI_ADD_PTR (char, Table, Offset); - StringLength = strlen (Namepath) + 1; -@@ -3849,11 +3957,14 @@ AcpiDmDumpTcpa ( - ACPI_TABLE_TCPA_HDR *SubTable = ACPI_ADD_PTR ( - ACPI_TABLE_TCPA_HDR, Table, Offset); - ACPI_STATUS Status; -+ UINT32 Length; -+ UINT16 PlatformClass; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, - 0, AcpiDmTableInfoTcpaHdr); - if (ACPI_FAILURE (Status)) - { -@@ -3864,18 +3975,19 @@ AcpiDmDumpTcpa ( - * Examine the PlatformClass field to determine the table type. - * Either a client or server table. Only one. - */ -- switch (CommonHeader->PlatformClass) -+ ACPI_MOVE_16_TO_16(&PlatformClass, &CommonHeader->PlatformClass); -+ switch (PlatformClass) - { - case ACPI_TCPA_CLIENT_TABLE: - -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -- Table->Length - Offset, AcpiDmTableInfoTcpaClient); -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, -+ Length - Offset, AcpiDmTableInfoTcpaClient); - break; - - case ACPI_TCPA_SERVER_TABLE: - -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -- Table->Length - Offset, AcpiDmTableInfoTcpaServer); -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, -+ Length - Offset, AcpiDmTableInfoTcpaServer); - break; - - default: -@@ -3912,11 +4024,13 @@ AcpiDmDumpVrtc ( - ACPI_STATUS Status; - UINT32 Offset = sizeof (ACPI_TABLE_VRTC); - ACPI_VRTC_ENTRY *SubTable; -+ UINT32 Length; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoVrtc); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoVrtc); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3925,12 +4039,12 @@ AcpiDmDumpVrtc ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, - sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0); - if (ACPI_FAILURE (Status)) - { -@@ -3965,11 +4079,13 @@ AcpiDmDumpWdat ( - ACPI_STATUS Status; - UINT32 Offset = sizeof (ACPI_TABLE_WDAT); - ACPI_WDAT_ENTRY *SubTable; -+ UINT32 Length; - - - /* Main table */ - -- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoWdat); -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); -+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWdat); - if (ACPI_FAILURE (Status)) - { - return; -@@ -3978,12 +4094,12 @@ AcpiDmDumpWdat ( - /* Subtables */ - - SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, Table, Offset); -- while (Offset < Table->Length) -+ while (Offset < Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); -- Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, -+ Status = AcpiDmDumpTable (Length, Offset, SubTable, - sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0); - if (ACPI_FAILURE (Status)) - { -@@ -4018,12 +4134,13 @@ AcpiDmDumpWpbt ( - { - ACPI_STATUS Status; - ACPI_TABLE_WPBT *SubTable; -- UINT32 Length = Table->Length; -+ UINT32 Length; - UINT16 ArgumentsLength; - - - /* Dump the main table */ - -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWpbt); - if (ACPI_FAILURE (Status)) - { -@@ -4033,10 +4150,10 @@ AcpiDmDumpWpbt ( - /* Extract the arguments buffer length from the main table */ - - SubTable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table); -- ArgumentsLength = SubTable->ArgumentsLength; -+ ACPI_MOVE_16_TO_16(&ArgumentsLength, &SubTable->ArgumentsLength); - - /* Dump the arguments buffer */ - -- (void) AcpiDmDumpTable (Table->Length, 0, Table, ArgumentsLength, -+ (void) AcpiDmDumpTable (Length, 0, Table, ArgumentsLength, - AcpiDmTableInfoWpbt0); - } -Index: acpica-unix2-20170728/source/compiler/aslrestype2.c -=================================================================== ---- acpica-unix2-20170728.orig/source/compiler/aslrestype2.c -+++ acpica-unix2-20170728/source/compiler/aslrestype2.c -@@ -98,21 +98,33 @@ RsDoGeneralRegisterDescriptor ( - { - case 0: /* Address space */ - -+ /* - Descriptor->GenericReg.AddressSpaceId = (UINT8) InitializerOp->Asl.Value.Integer; -+ */ -+ ACPI_MOVE_64_TO_8(&Descriptor->GenericReg.AddressSpaceId, -+ &InitializerOp->Asl.Value.Integer); - RsCreateByteField (InitializerOp, ACPI_RESTAG_ADDRESSSPACE, - CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.AddressSpaceId)); - break; - - case 1: /* Register Bit Width */ - -+ /* - Descriptor->GenericReg.BitWidth = (UINT8) InitializerOp->Asl.Value.Integer; -+ */ -+ ACPI_MOVE_64_TO_8(&Descriptor->GenericReg.BitWidth, -+ &InitializerOp->Asl.Value.Integer); - RsCreateByteField (InitializerOp, ACPI_RESTAG_REGISTERBITWIDTH, - CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.BitWidth)); - break; - - case 2: /* Register Bit Offset */ - -+ /* - Descriptor->GenericReg.BitOffset = (UINT8) InitializerOp->Asl.Value.Integer; -+ */ -+ ACPI_MOVE_64_TO_8(&Descriptor->GenericReg.BitOffset, -+ &InitializerOp->Asl.Value.Integer); - RsCreateByteField (InitializerOp, ACPI_RESTAG_REGISTERBITOFFSET, - CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.BitOffset)); - break; -@@ -127,7 +139,11 @@ RsDoGeneralRegisterDescriptor ( - - case 4: /* Access Size (ACPI 3.0) */ - -+ /* - Descriptor->GenericReg.AccessSize = (UINT8) InitializerOp->Asl.Value.Integer; -+ */ -+ ACPI_MOVE_64_TO_8(&Descriptor->GenericReg.AccessSize, -+ &InitializerOp->Asl.Value.Integer); - RsCreateByteField (InitializerOp, ACPI_RESTAG_ACCESSSIZE, - CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.AccessSize)); - -Index: acpica-unix2-20170728/source/compiler/dtfield.c -=================================================================== ---- acpica-unix2-20170728.orig/source/compiler/dtfield.c -+++ acpica-unix2-20170728/source/compiler/dtfield.c -@@ -360,7 +360,27 @@ DtCompileInteger ( - DtError (ASL_ERROR, ASL_MSG_INTEGER_SIZE, Field, MsgBuffer); - } - -- memcpy (Buffer, &Value, ByteLength); -+ switch (ByteLength) { -+ case 1: -+ ACPI_MOVE_64_TO_8(Buffer, &Value); -+ break; -+ -+ case 2: -+ ACPI_MOVE_64_TO_16(Buffer, &Value); -+ break; -+ -+ case 4: -+ ACPI_MOVE_64_TO_32(Buffer, &Value); -+ break; -+ -+ case 8: -+ ACPI_MOVE_64_TO_64(Buffer, &Value); -+ break; -+ -+ default: -+ memcpy (Buffer, &Value, ByteLength); -+ break; -+ } - return; - } - -Index: acpica-unix2-20170728/source/compiler/dtsubtable.c -=================================================================== ---- acpica-unix2-20170728.orig/source/compiler/dtsubtable.c -+++ acpica-unix2-20170728/source/compiler/dtsubtable.c -@@ -379,6 +379,21 @@ DtSetSubtableLength ( - return; - } - -- memcpy (Subtable->LengthField, &Subtable->TotalLength, -- Subtable->SizeOfLengthField); -+ switch(Subtable->SizeOfLengthField) { -+ case 1: -+ ACPI_MOVE_32_TO_8(Subtable->LengthField, &Subtable->TotalLength); -+ break; -+ -+ case 2: -+ ACPI_MOVE_32_TO_16(Subtable->LengthField, &Subtable->TotalLength); -+ break; -+ -+ case 4: -+ ACPI_MOVE_32_TO_32(Subtable->LengthField, &Subtable->TotalLength); -+ break; -+ -+ default: -+ memcpy (Subtable->LengthField, &Subtable->TotalLength, -+ Subtable->SizeOfLengthField); -+ } - } -Index: acpica-unix2-20170728/source/compiler/dttable1.c -=================================================================== ---- acpica-unix2-20170728.orig/source/compiler/dttable1.c -+++ acpica-unix2-20170728/source/compiler/dttable1.c -@@ -282,6 +282,8 @@ DtCompileCsrt ( - DT_FIELD **PFieldList = (DT_FIELD **) List; - UINT32 DescriptorCount; - UINT32 GroupLength; -+ ACPI_CSRT_GROUP *Pgrp; -+ UINT32 Tmp32; - - - /* Subtables (Resource Groups) */ -@@ -300,12 +302,20 @@ DtCompileCsrt ( - - /* Compute the number of resource descriptors */ - -+ /* - GroupLength = - (ACPI_CAST_PTR (ACPI_CSRT_GROUP, - Subtable->Buffer))->Length - - (ACPI_CAST_PTR (ACPI_CSRT_GROUP, - Subtable->Buffer))->SharedInfoLength - - sizeof (ACPI_CSRT_GROUP); -+ */ -+ Pgrp = ACPI_CAST_PTR(ACPI_CSRT_GROUP, Subtable->Buffer); -+ ACPI_MOVE_32_TO_32(&Tmp32, &Pgrp->Length); -+ GroupLength = Tmp32; -+ ACPI_MOVE_32_TO_32(&Tmp32, &Pgrp->SharedInfoLength); -+ GroupLength -= Tmp32; -+ GroupLength -= sizeof (ACPI_CSRT_GROUP); - - DescriptorCount = (GroupLength / - sizeof (ACPI_CSRT_DESCRIPTOR)); -@@ -393,6 +403,8 @@ DtCompileDbg2 ( - ACPI_DBG2_DEVICE *DeviceInfo; - UINT16 CurrentOffset; - UINT32 i; -+ UINT16 Tmp16; -+ UINT32 Tmp32; - - - /* Main table */ -@@ -409,10 +421,11 @@ DtCompileDbg2 ( - /* Main table fields */ - - Dbg2Header = ACPI_CAST_PTR (ACPI_DBG2_HEADER, Subtable->Buffer); -- Dbg2Header->InfoOffset = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF ( -+ Tmp32 = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF ( - ACPI_ADD_PTR (UINT8, Dbg2Header, sizeof (ACPI_DBG2_HEADER)), Dbg2Header); -+ ACPI_MOVE_32_TO_32(&Dbg2Header->InfoOffset, &Tmp32); - -- SubtableCount = Dbg2Header->InfoCount; -+ ACPI_MOVE_32_TO_32(&SubtableCount, &Dbg2Header->InfoCount); - DtPushSubtable (Subtable); - - /* Process all Device Information subtables (Count = InfoCount) */ -@@ -439,7 +452,7 @@ DtCompileDbg2 ( - - /* BaseAddressRegister GAS array (Required, size is RegisterCount) */ - -- DeviceInfo->BaseAddressOffset = CurrentOffset; -+ ACPI_MOVE_16_TO_16(&DeviceInfo->BaseAddressOffset, &CurrentOffset); - for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Addr, -@@ -455,7 +468,7 @@ DtCompileDbg2 ( - - /* AddressSize array (Required, size = RegisterCount) */ - -- DeviceInfo->AddressSizeOffset = CurrentOffset; -+ ACPI_MOVE_16_TO_16(&DeviceInfo->AddressSizeOffset, &CurrentOffset); - for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Size, -@@ -471,7 +484,7 @@ DtCompileDbg2 ( - - /* NamespaceString device identifier (Required, size = NamePathLength) */ - -- DeviceInfo->NamepathOffset = CurrentOffset; -+ ACPI_MOVE_16_TO_16(&DeviceInfo->NamepathOffset, &CurrentOffset); - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Name, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) -@@ -481,8 +494,9 @@ DtCompileDbg2 ( - - /* Update the device info header */ - -- DeviceInfo->NamepathLength = (UINT16) Subtable->Length; -- CurrentOffset += (UINT16) DeviceInfo->NamepathLength; -+ ACPI_MOVE_32_TO_16(&DeviceInfo->NamepathLength, &Subtable->Length); -+ ACPI_MOVE_16_TO_16(&Tmp16, &DeviceInfo->NamepathLength); -+ CurrentOffset += Tmp16; - DtInsertSubtable (ParentTable, Subtable); - - /* OemData - Variable-length data (Optional, size = OemDataLength) */ -@@ -503,8 +517,8 @@ DtCompileDbg2 ( - - if (Subtable && Subtable->Length) - { -- DeviceInfo->OemDataOffset = CurrentOffset; -- DeviceInfo->OemDataLength = (UINT16) Subtable->Length; -+ ACPI_MOVE_16_TO_16(&DeviceInfo->OemDataOffset, &CurrentOffset); -+ ACPI_MOVE_32_TO_16(&DeviceInfo->OemDataLength, &Subtable->Length); - - DtInsertSubtable (ParentTable, Subtable); - } -@@ -544,6 +558,8 @@ DtCompileDmar ( - ACPI_DMAR_DEVICE_SCOPE *DmarDeviceScope; - UINT32 DeviceScopeLength; - UINT32 PciPathLength; -+ UINT16 Tmp16; -+ UINT16 HdrType; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmar, &Subtable, TRUE); -@@ -573,8 +589,11 @@ DtCompileDmar ( - DtPushSubtable (Subtable); - - DmarHeader = ACPI_CAST_PTR (ACPI_DMAR_HEADER, Subtable->Buffer); -+ ACPI_MOVE_16_TO_16(&Tmp16, &DmarHeader->Length); -+ DmarHeader->Length = Tmp16; - -- switch (DmarHeader->Type) -+ ACPI_MOVE_16_TO_16(&HdrType, &DmarHeader->Type); -+ switch (HdrType) - { - case ACPI_DMAR_TYPE_HARDWARE_UNIT: - -@@ -621,8 +640,8 @@ DtCompileDmar ( - /* - * Optional Device Scope subtables - */ -- if ((DmarHeader->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) || -- (DmarHeader->Type == ACPI_DMAR_TYPE_NAMESPACE)) -+ if ((HdrType == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) || -+ (HdrType == ACPI_DMAR_TYPE_NAMESPACE)) - { - /* These types do not support device scopes */ - -@@ -631,8 +650,8 @@ DtCompileDmar ( - } - - DtPushSubtable (Subtable); -- DeviceScopeLength = DmarHeader->Length - Subtable->Length - -- ParentTable->Length; -+ DeviceScopeLength = DmarHeader->Length - Subtable->Length - -+ ParentTable->Length; - while (DeviceScopeLength) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarScope, -@@ -757,7 +776,7 @@ DtCompileDrtm ( - Count++; - } - -- DrtmVtl->ValidatedTableCount = Count; -+ ACPI_MOVE_32_TO_32(&DrtmVtl->ValidatedTableCount, &Count); - DtPopSubtable (); - ParentTable = DtPeekSubtable (); - -@@ -795,7 +814,7 @@ DtCompileDrtm ( - Count++; - } - -- DrtmRl->ResourceCount = Count; -+ ACPI_MOVE_32_TO_32(&DrtmRl->ResourceCount, &Count); - DtPopSubtable (); - ParentTable = DtPeekSubtable (); - -@@ -889,6 +908,7 @@ DtCompileGtdt ( - ACPI_SUBTABLE_HEADER *GtdtHeader; - ACPI_DMTABLE_INFO *InfoTable; - UINT32 GtCount; -+ ACPI_GTDT_TIMER_BLOCK *TimerBlock; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt, -@@ -955,8 +975,9 @@ DtCompileGtdt ( - DtPushSubtable (Subtable); - ParentTable = DtPeekSubtable (); - -- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, -- Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount; -+ TimerBlock = ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, -+ Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)); -+ ACPI_MOVE_32_TO_32(&GtCount, &TimerBlock->TimerCount); - - while (GtCount) - { -@@ -1009,6 +1030,7 @@ DtCompileFpdt ( - ACPI_DMTABLE_INFO *InfoTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; -+ UINT16 HdrType; - - - while (*PFieldList) -@@ -1027,7 +1049,8 @@ DtCompileFpdt ( - - FpdtHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer); - -- switch (FpdtHeader->Type) -+ ACPI_MOVE_16_TO_16(&HdrType, &FpdtHeader->Type); -+ switch (HdrType) - { - case ACPI_FPDT_TYPE_BOOT: - -@@ -1085,6 +1108,7 @@ DtCompileHest ( - ACPI_DMTABLE_INFO *InfoTable; - UINT16 Type; - UINT32 BankCount; -+ UINT16 Tmp16; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoHest, -@@ -1102,8 +1126,9 @@ DtCompileHest ( - /* Get subtable type */ - - SubtableStart = *PFieldList; -- DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0); -+ DtCompileInteger ((UINT8 *) &Tmp16, *PFieldList, 2, 0); - -+ ACPI_MOVE_16_TO_16(&Type, &Tmp16); - switch (Type) - { - case ACPI_HEST_TYPE_IA32_CHECK: -@@ -1453,11 +1478,13 @@ DtCompileIort ( - ACPI_IORT_SMMU *IortSmmu; - UINT32 NodeNumber; - UINT32 NodeLength; -+ UINT32 NodeOffset; - UINT32 IdMappingNumber; - UINT32 ItsNumber; - UINT32 ContextIrptNumber; - UINT32 PmuIrptNumber; - UINT32 PaddingLength; -+ UINT32 MappingOffset; - - - ParentTable = DtPeekSubtable (); -@@ -1483,7 +1510,7 @@ DtCompileIort ( - * Optionally allows the generic data types to be used for filling - * this field. - */ -- Iort->NodeOffset = sizeof (ACPI_TABLE_IORT); -+ NodeOffset = sizeof (ACPI_TABLE_IORT); - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortPad, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) -@@ -1493,7 +1520,7 @@ DtCompileIort ( - if (Subtable) - { - DtInsertSubtable (ParentTable, Subtable); -- Iort->NodeOffset += Subtable->Length; -+ NodeOffset += Subtable->Length; - } - else - { -@@ -1503,8 +1530,9 @@ DtCompileIort ( - { - return (Status); - } -- Iort->NodeOffset += PaddingLength; -+ NodeOffset += PaddingLength; - } -+ ACPI_MOVE_32_TO_32(&Iort->NodeOffset, &NodeOffset); - - NodeNumber = 0; - while (*PFieldList) -@@ -1558,7 +1586,7 @@ DtCompileIort ( - ItsNumber++; - } - -- IortItsGroup->ItsCount = ItsNumber; -+ ACPI_MOVE_32_TO_32(&IortItsGroup->ItsCount, &ItsNumber); - break; - - case ACPI_IORT_NODE_NAMED_COMPONENT: -@@ -1592,15 +1620,16 @@ DtCompileIort ( - } - else - { -- if (NodeLength > IortNode->MappingOffset) -+ ACPI_MOVE_32_TO_32(&MappingOffset, &IortNode->MappingOffset); -+ if (NodeLength > MappingOffset) - { - return (AE_BAD_DATA); - } - -- if (NodeLength < IortNode->MappingOffset) -+ if (NodeLength < MappingOffset) - { - Status = DtCompilePadding ( -- IortNode->MappingOffset - NodeLength, -+ MappingOffset - NodeLength, - &Subtable); - if (ACPI_FAILURE (Status)) - { -@@ -1608,7 +1637,8 @@ DtCompileIort ( - } - - DtInsertSubtable (ParentTable, Subtable); -- NodeLength = IortNode->MappingOffset; -+ ACPI_MOVE_32_TO_32(&MappingOffset, &IortNode->MappingOffset); -+ NodeLength = MappingOffset; - } - } - break; -@@ -1641,7 +1671,7 @@ DtCompileIort ( - - /* Compile global interrupt array */ - -- IortSmmu->GlobalInterruptOffset = NodeLength; -+ ACPI_MOVE_32_TO_32(&IortSmmu->GlobalInterruptOffset, &NodeLength); - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) -@@ -1655,7 +1685,7 @@ DtCompileIort ( - /* Compile context interrupt array */ - - ContextIrptNumber = 0; -- IortSmmu->ContextInterruptOffset = NodeLength; -+ ACPI_MOVE_32_TO_32(&IortSmmu->ContextInterruptOffset, &NodeLength); - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3b, -@@ -1675,12 +1705,12 @@ DtCompileIort ( - ContextIrptNumber++; - } - -- IortSmmu->ContextInterruptCount = ContextIrptNumber; -+ ACPI_MOVE_32_TO_32(&IortSmmu->ContextInterruptCount, &ContextIrptNumber); - - /* Compile PMU interrupt array */ - - PmuIrptNumber = 0; -- IortSmmu->PmuInterruptOffset = NodeLength; -+ ACPI_MOVE_32_TO_32(&IortSmmu->PmuInterruptOffset, &NodeLength); - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3c, -@@ -1700,7 +1730,7 @@ DtCompileIort ( - PmuIrptNumber++; - } - -- IortSmmu->PmuInterruptCount = PmuIrptNumber; -+ ACPI_MOVE_32_TO_32(&IortSmmu->PmuInterruptCount, &PmuIrptNumber); - break; - - case ACPI_IORT_NODE_SMMU_V3: -@@ -1724,7 +1754,7 @@ DtCompileIort ( - - /* Compile Array of ID mappings */ - -- IortNode->MappingOffset = NodeLength; -+ ACPI_MOVE_32_TO_32(&IortNode->MappingOffset, &NodeLength); - IdMappingNumber = 0; - while (*PFieldList) - { -@@ -1745,7 +1775,7 @@ DtCompileIort ( - IdMappingNumber++; - } - -- IortNode->MappingCount = IdMappingNumber; -+ ACPI_MOVE_32_TO_32(&IortNode->MappingCount, &IdMappingNumber); - if (!IdMappingNumber) - { - IortNode->MappingOffset = 0; -@@ -1760,7 +1790,7 @@ DtCompileIort ( - NodeNumber++; - } - -- Iort->NodeCount = NodeNumber; -+ ACPI_MOVE_32_TO_32(&Iort->NodeCount, &NodeNumber); - return (AE_OK); - } - -Index: acpica-unix2-20170728/source/compiler/dttable2.c -=================================================================== ---- acpica-unix2-20170728.orig/source/compiler/dttable2.c -+++ acpica-unix2-20170728/source/compiler/dttable2.c -@@ -346,7 +346,7 @@ DtCompileMpst ( - DtPushSubtable (Subtable); - - MpstChannelInfo = ACPI_CAST_PTR (ACPI_MPST_CHANNEL, Subtable->Buffer); -- SubtableCount = MpstChannelInfo->PowerNodeCount; -+ ACPI_MOVE_16_TO_16(&SubtableCount, &MpstChannelInfo->PowerNodeCount); - - while (*PFieldList && SubtableCount) - { -@@ -364,8 +364,8 @@ DtCompileMpst ( - DtPushSubtable (Subtable); - - MpstPowerNode = ACPI_CAST_PTR (ACPI_MPST_POWER_NODE, Subtable->Buffer); -- PowerStateCount = MpstPowerNode->NumPowerStates; -- ComponentCount = MpstPowerNode->NumPhysicalComponents; -+ ACPI_MOVE_32_TO_32(&PowerStateCount, &MpstPowerNode->NumPowerStates); -+ ACPI_MOVE_32_TO_32(&ComponentCount, &MpstPowerNode->NumPhysicalComponents); - - ParentTable = DtPeekSubtable (); - -@@ -518,6 +518,7 @@ DtCompileNfit ( - UINT32 Count; - ACPI_NFIT_INTERLEAVE *Interleave = NULL; - ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL; -+ UINT16 SubType; - - - /* Main table */ -@@ -551,7 +552,8 @@ DtCompileNfit ( - - NfitHeader = ACPI_CAST_PTR (ACPI_NFIT_HEADER, Subtable->Buffer); - -- switch (NfitHeader->Type) -+ ACPI_MOVE_16_TO_16(&SubType, &NfitHeader->Type); -+ switch (SubType) - { - case ACPI_NFIT_TYPE_SYSTEM_ADDRESS: - -@@ -606,7 +608,7 @@ DtCompileNfit ( - DtInsertSubtable (ParentTable, Subtable); - DtPopSubtable (); - -- switch (NfitHeader->Type) -+ switch (SubType) - { - case ACPI_NFIT_TYPE_INTERLEAVE: - -@@ -632,7 +634,7 @@ DtCompileNfit ( - Count++; - } - -- Interleave->LineCount = Count; -+ ACPI_MOVE_32_TO_32(&Interleave->LineCount, &Count); - DtPopSubtable (); - break; - -@@ -678,7 +680,7 @@ DtCompileNfit ( - Count++; - } - -- Hint->HintCount = (UINT16) Count; -+ ACPI_MOVE_32_TO_16(&Hint->HintCount, &Count); - DtPopSubtable (); - break; - -@@ -895,7 +897,7 @@ DtCompilePmtt ( - - PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER, - (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER))); -- DomainCount = PmttController->DomainCount; -+ ACPI_MOVE_16_TO_16(&DomainCount, &PmttController->DomainCount); - - while (DomainCount) - { -@@ -1115,6 +1117,7 @@ DtCompileS3pt ( - DT_SUBTABLE *ParentTable; - ACPI_DMTABLE_INFO *InfoTable; - DT_FIELD *SubtableStart; -+ UINT16 HdrType; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt, -@@ -1142,7 +1145,8 @@ DtCompileS3pt ( - - S3ptHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer); - -- switch (S3ptHeader->Type) -+ ACPI_MOVE_16_TO_16(&HdrType, &S3ptHeader->Type); -+ switch (HdrType) - { - case ACPI_S3PT_TYPE_RESUME: - -@@ -1239,6 +1243,7 @@ DtCompileSlit ( - DT_FIELD *FieldList; - UINT32 Localities; - UINT8 *LocalityBuffer; -+ UINT32 Tmp; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlit, -@@ -1251,7 +1256,8 @@ DtCompileSlit ( - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - -- Localities = *ACPI_CAST_PTR (UINT32, Subtable->Buffer); -+ Tmp = *ACPI_CAST_PTR (UINT32, Subtable->Buffer); -+ ACPI_MOVE_32_TO_32(&Localities, &Tmp); - LocalityBuffer = UtLocalCalloc (Localities); - - /* Compile each locality buffer */ -@@ -1445,6 +1451,7 @@ DtCompileTcpa ( - ACPI_TABLE_TCPA_HDR *TcpaHeader; - DT_SUBTABLE *ParentTable; - ACPI_STATUS Status; -+ UINT16 PlatClass; - - - /* Compile the main table */ -@@ -1465,7 +1472,8 @@ DtCompileTcpa ( - */ - TcpaHeader = ACPI_CAST_PTR (ACPI_TABLE_TCPA_HDR, ParentTable->Buffer); - -- switch (TcpaHeader->PlatformClass) -+ ACPI_MOVE_16_TO_16(&PlatClass, &TcpaHeader->PlatformClass); -+ switch (PlatClass) - { - case ACPI_TCPA_CLIENT_TABLE: - -@@ -1661,6 +1669,9 @@ DtCompileWpbt ( - ACPI_TABLE_WPBT *Table; - ACPI_STATUS Status; - UINT16 Length; -+ UINT16 Tmp16; -+ UINT16 *Ptr16; -+ UINT32 ii; - - - /* Compile the main table */ -@@ -1688,7 +1699,16 @@ DtCompileWpbt ( - - Length = (UINT16) Subtable->TotalLength; - Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer); -- Table->ArgumentsLength = Length; -+ ACPI_MOVE_16_TO_16(&Table->ArgumentsLength, &Length); -+ -+ /* The arguments are in Unicode, so make sure the byte order is correct */ -+ Ptr16 = (UINT16 *)Subtable->Buffer; -+ for (ii = 0; ii < Length; ii++) -+ { -+ ACPI_MOVE_16_TO_16(&Tmp16, Ptr16); -+ *Ptr16 = Tmp16; -+ Ptr16++; -+ } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); -Index: acpica-unix2-20170728/source/components/disassembler/dmbuffer.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/disassembler/dmbuffer.c -+++ acpica-unix2-20170728/source/components/disassembler/dmbuffer.c -@@ -204,7 +204,7 @@ AcpiDmByteList ( - - - ByteData = Op->Named.Data; -- ByteCount = (UINT32) Op->Common.Value.Integer; -+ ByteCount = (UINT32) Op->Common.Value.Size; - - /* - * The byte list belongs to a buffer, and can be produced by either -@@ -304,7 +304,8 @@ AcpiDmIsUuidBuffer ( - /* Extract the byte list info */ - - ByteData = NextOp->Named.Data; -- ByteCount = (UINT32) NextOp->Common.Value.Integer; -+ /* ByteCount = (UINT32) NextOp->Common.Value.Integer; */ -+ ByteCount = (UINT32) NextOp->Common.Value.Size; - - /* Byte count must be exactly 16 */ - -@@ -424,7 +425,8 @@ AcpiDmIsUnicodeBuffer ( - /* Extract the byte list info */ - - ByteData = NextOp->Named.Data; -- ByteCount = (UINT32) NextOp->Common.Value.Integer; -+ /* ByteCount = (UINT32) NextOp->Common.Value.Integer; */ -+ ByteCount = (UINT32) NextOp->Common.Value.Size; - WordCount = ACPI_DIV_2 (ByteCount); - - /* -@@ -852,19 +854,22 @@ AcpiDmUnicode ( - UINT32 WordCount; - UINT32 i; - int OutputValue; -+ UINT16 Tmp16; - - - /* Extract the buffer info as a WORD buffer */ - - WordData = ACPI_CAST_PTR (UINT16, Op->Named.Data); -- WordCount = ACPI_DIV_2 (((UINT32) Op->Common.Value.Integer)); -+ WordCount = ACPI_DIV_2 (((UINT32) Op->Common.Value.Size)); - - /* Write every other byte as an ASCII character */ - - AcpiOsPrintf ("""); - for (i = 0; i < (WordCount - 1); i++) - { -- OutputValue = (int) WordData[i]; -+ /* OutputValue = (int) WordData[i]; */ -+ ACPI_MOVE_16_TO_16(&Tmp16, &WordData[i]); -+ OutputValue = (int) Tmp16; - - /* Handle values that must be escaped */ - -@@ -973,16 +978,18 @@ AcpiDmCheckForHardwareId ( - ACPI_PARSE_OBJECT *Op) - { - UINT32 Name; -+ UINT32 TmpName; - ACPI_PARSE_OBJECT *NextOp; - - - /* Get the NameSegment */ - -- Name = AcpiPsGetName (Op); -- if (!Name) -+ TmpName = AcpiPsGetName (Op); -+ if (!TmpName) - { - return; - } -+ ACPI_MOVE_32_TO_32(&Name, &TmpName); - - NextOp = AcpiPsGetDepthNext (NULL, Op); - if (!NextOp) -Index: acpica-unix2-20170728/source/components/disassembler/dmopcode.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/disassembler/dmopcode.c -+++ acpica-unix2-20170728/source/components/disassembler/dmopcode.c -@@ -244,6 +244,7 @@ AcpiDmPredefinedDescription ( - char *NameString; - int LastCharIsDigit; - int LastCharsAreHex; -+ char TmpName[ACPI_NAME_SIZE + 1]; - - - if (!Op) -@@ -261,7 +262,9 @@ AcpiDmPredefinedDescription ( - - /* Predefined name must start with an underscore */ - -- NameString = ACPI_CAST_PTR (char, &Op->Named.Name); -+ memset(TmpName, 0, ACPI_NAME_SIZE + 1); -+ ACPI_MOVE_32_TO_32(TmpName, &Op->Named.Name); -+ NameString = TmpName; - if (NameString[0] != '_') - { - return; -@@ -880,25 +883,29 @@ AcpiDmDisassembleOneOp ( - AcpiDmNamestring (Op->Common.Value.Name); - break; - -- case AML_INT_NAMEDFIELD_OP: -+ case AML_INT_NAMEDFIELD_OP: { - -- Length = AcpiDmDumpName (Op->Named.Name); -+ UINT32 TmpName; -+ -+ ACPI_MOVE_32_TO_32(&TmpName, &Op->Named.Name); -+ Length = AcpiDmDumpName (TmpName); - - AcpiOsPrintf (","); - ASL_CV_PRINT_ONE_COMMENT (Op, AML_NAMECOMMENT, NULL, 0); - AcpiOsPrintf ("%*.s %u", (unsigned) (5 - Length), " ", -- (UINT32) Op->Common.Value.Integer); -+ (UINT32) Op->Common.Value.Size); - - AcpiDmCommaIfFieldMember (Op); - -- Info->BitOffset += (UINT32) Op->Common.Value.Integer; -+ Info->BitOffset += (UINT32) Op->Common.Value.Size; - break; -+ } - - case AML_INT_RESERVEDFIELD_OP: - - /* Offset() -- Must account for previous offsets */ - -- Offset = (UINT32) Op->Common.Value.Integer; -+ Offset = Op->Common.Value.Size; - Info->BitOffset += Offset; - - if (Info->BitOffset % 8 == 0) -Index: acpica-unix2-20170728/source/components/disassembler/dmresrcl2.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/disassembler/dmresrcl2.c -+++ acpica-unix2-20170728/source/components/disassembler/dmresrcl2.c -@@ -191,22 +191,24 @@ AcpiDmGpioCommon ( - char *DeviceName = NULL; - UINT32 PinCount; - UINT32 i; -+ UINT16 Tmp16; - - - /* ResourceSource, ResourceSourceIndex, ResourceType */ - - AcpiDmIndent (Level + 1); -- if (Resource->Gpio.ResSourceOffset) -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.ResSourceOffset); -+ if (Tmp16) - { -- DeviceName = ACPI_ADD_PTR (char, -- Resource, Resource->Gpio.ResSourceOffset), -+ DeviceName = ACPI_ADD_PTR (char, Resource, Tmp16), - AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX); - } - - AcpiOsPrintf (", "); - AcpiOsPrintf ("0x%2.2X, ", Resource->Gpio.ResSourceIndex); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.Flags); - AcpiOsPrintf ("%s, ", -- AcpiGbl_ConsumeDecode [ACPI_GET_1BIT_FLAG (Resource->Gpio.Flags)]); -+ AcpiGbl_ConsumeDecode [ACPI_GET_1BIT_FLAG (Tmp16)]); - - /* Insert a descriptor name */ - -@@ -215,15 +217,16 @@ AcpiDmGpioCommon ( - - /* Dump the vendor data */ - -- if (Resource->Gpio.VendorOffset) -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.VendorOffset); -+ if (Tmp16) - { - AcpiOsPrintf ("\n"); - AcpiDmIndent (Level + 1); -- VendorData = ACPI_ADD_PTR (UINT8, Resource, -- Resource->Gpio.VendorOffset); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.VendorOffset); -+ VendorData = ACPI_ADD_PTR (UINT8, Resource, Tmp16); - -- AcpiDmDumpRawDataBuffer (VendorData, -- Resource->Gpio.VendorLength, Level); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.VendorLength); -+ AcpiDmDumpRawDataBuffer (VendorData, Tmp16, Level); - } - - AcpiOsPrintf (")\n"); -@@ -233,17 +236,25 @@ AcpiDmGpioCommon ( - AcpiDmIndent (Level + 1); - AcpiOsPrintf ("{ // Pin list\n"); - -+ /* - PinCount = ((UINT32) (Resource->Gpio.ResSourceOffset - - Resource->Gpio.PinTableOffset)) / - sizeof (UINT16); -+ */ -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.ResSourceOffset); -+ PinCount = (UINT32) Tmp16; -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.PinTableOffset); -+ PinCount -= (UINT32) Tmp16; -+ PinCount /= sizeof (UINT16); - -- PinList = (UINT16 *) ACPI_ADD_PTR (char, Resource, -- Resource->Gpio.PinTableOffset); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.PinTableOffset); -+ PinList = (UINT16 *) ACPI_ADD_PTR (char, Resource, Tmp16); - - for (i = 0; i < PinCount; i++) - { - AcpiDmIndent (Level + 2); -- AcpiOsPrintf ("0x%4.4X%s\n", PinList[i], -+ ACPI_MOVE_16_TO_16(&Tmp16, &PinList[i]); -+ AcpiOsPrintf ("0x%4.4X%s\n", Tmp16, - ((i + 1) < PinCount) ? "," : ""); - } - -@@ -277,16 +288,18 @@ AcpiDmGpioIntDescriptor ( - UINT32 Length, - UINT32 Level) - { -+ UINT16 Tmp16; - - /* Dump the GpioInt-specific portion of the descriptor */ - - /* EdgeLevel, ActiveLevel, Shared */ - - AcpiDmIndent (Level); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.IntFlags); - AcpiOsPrintf ("GpioInt (%s, %s, %s, ", -- AcpiGbl_HeDecode [ACPI_GET_1BIT_FLAG (Resource->Gpio.IntFlags)], -- AcpiGbl_LlDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 1)], -- AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 3)]); -+ AcpiGbl_HeDecode [ACPI_GET_1BIT_FLAG (Tmp16)], -+ AcpiGbl_LlDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 1)], -+ AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 3)]); - - /* PinConfig, DebounceTimeout */ - -@@ -299,7 +312,8 @@ AcpiDmGpioIntDescriptor ( - { - AcpiOsPrintf ("0x%2.2X, ", Resource->Gpio.PinConfig); - } -- AcpiOsPrintf ("0x%4.4X,\n", Resource->Gpio.DebounceTimeout); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.DebounceTimeout); -+ AcpiOsPrintf ("0x%4.4X,\n", Tmp16); - - /* Dump the GpioInt/GpioIo common portion of the descriptor */ - -@@ -329,14 +343,16 @@ AcpiDmGpioIoDescriptor ( - UINT32 Length, - UINT32 Level) - { -+ UINT16 Tmp16; - - /* Dump the GpioIo-specific portion of the descriptor */ - - /* Shared, PinConfig */ - - AcpiDmIndent (Level); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.IntFlags); - AcpiOsPrintf ("GpioIo (%s, ", -- AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 3)]); -+ AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 3)]); - - if (Resource->Gpio.PinConfig <= 3) - { -@@ -350,10 +366,13 @@ AcpiDmGpioIoDescriptor ( - - /* DebounceTimeout, DriveStrength, IoRestriction */ - -- AcpiOsPrintf ("0x%4.4X, ", Resource->Gpio.DebounceTimeout); -- AcpiOsPrintf ("0x%4.4X, ", Resource->Gpio.DriveStrength); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.DebounceTimeout); -+ AcpiOsPrintf ("0x%4.4X, ", Tmp16); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.DriveStrength); -+ AcpiOsPrintf ("0x%4.4X, ", Tmp16); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.IntFlags); - AcpiOsPrintf ("%s,\n", -- AcpiGbl_IorDecode [ACPI_GET_2BIT_FLAG (Resource->Gpio.IntFlags)]); -+ AcpiGbl_IorDecode [ACPI_GET_2BIT_FLAG (Tmp16)]); - - /* Dump the GpioInt/GpioIo common portion of the descriptor */ - -@@ -533,6 +552,7 @@ AcpiDmDumpSerialBusVendorData ( - { - UINT8 *VendorData; - UINT32 VendorLength; -+ UINT16 Tmp16; - - - /* Get the (optional) vendor data and length */ -@@ -541,8 +561,8 @@ AcpiDmDumpSerialBusVendorData ( - { - case AML_RESOURCE_I2C_SERIALBUSTYPE: - -- VendorLength = Resource->CommonSerialBus.TypeDataLength - -- AML_RESOURCE_I2C_MIN_DATA_LEN; -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->CommonSerialBus.TypeDataLength); -+ VendorLength = Tmp16 - AML_RESOURCE_I2C_MIN_DATA_LEN; - - VendorData = ACPI_ADD_PTR (UINT8, Resource, - sizeof (AML_RESOURCE_I2C_SERIALBUS)); -@@ -550,8 +570,8 @@ AcpiDmDumpSerialBusVendorData ( - - case AML_RESOURCE_SPI_SERIALBUSTYPE: - -- VendorLength = Resource->CommonSerialBus.TypeDataLength - -- AML_RESOURCE_SPI_MIN_DATA_LEN; -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->CommonSerialBus.TypeDataLength); -+ VendorLength = Tmp16 - AML_RESOURCE_SPI_MIN_DATA_LEN; - - VendorData = ACPI_ADD_PTR (UINT8, Resource, - sizeof (AML_RESOURCE_SPI_SERIALBUS)); -@@ -559,8 +579,8 @@ AcpiDmDumpSerialBusVendorData ( - - case AML_RESOURCE_UART_SERIALBUSTYPE: - -- VendorLength = Resource->CommonSerialBus.TypeDataLength - -- AML_RESOURCE_UART_MIN_DATA_LEN; -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->CommonSerialBus.TypeDataLength); -+ VendorLength = Tmp16 - AML_RESOURCE_UART_MIN_DATA_LEN; - - VendorData = ACPI_ADD_PTR (UINT8, Resource, - sizeof (AML_RESOURCE_UART_SERIALBUS)); -@@ -601,15 +621,19 @@ AcpiDmI2cSerialBusDescriptor ( - { - UINT32 ResourceSourceOffset; - char *DeviceName; -+ UINT16 Tmp16; -+ UINT32 Tmp32; - - - /* SlaveAddress, SlaveMode, ConnectionSpeed, AddressingMode */ - -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->I2cSerialBus.SlaveAddress); -+ ACPI_MOVE_32_TO_32(&Tmp32, &Resource->I2cSerialBus.ConnectionSpeed); - AcpiDmIndent (Level); - AcpiOsPrintf ("I2cSerialBusV2 (0x%4.4X, %s, 0x%8.8X,\n", -- Resource->I2cSerialBus.SlaveAddress, -+ Tmp16, - AcpiGbl_SmDecode [ACPI_GET_1BIT_FLAG (Resource->I2cSerialBus.Flags)], -- Resource->I2cSerialBus.ConnectionSpeed); -+ Tmp32); - - AcpiDmIndent (Level + 1); - AcpiOsPrintf ("%s, ", -@@ -617,8 +641,8 @@ AcpiDmI2cSerialBusDescriptor ( - - /* ResourceSource is a required field */ - -- ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) + -- Resource->CommonSerialBus.TypeDataLength; -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->CommonSerialBus.TypeDataLength); -+ ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) + Tmp16; - - DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset); - AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX); -Index: acpica-unix2-20170728/source/components/disassembler/dmresrcl.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/disassembler/dmresrcl.c -+++ acpica-unix2-20170728/source/components/disassembler/dmresrcl.c -@@ -141,7 +141,8 @@ AcpiDmMemoryFields ( - UINT32 Level) - { - UINT32 i; -- -+ UINT16 Tmp16; -+ UINT32 Tmp32; - - for (i = 0; i < 4; i++) - { -@@ -151,14 +152,14 @@ AcpiDmMemoryFields ( - { - case 16: - -- AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i], -- AcpiDmMemoryNames[i]); -+ ACPI_MOVE_16_TO_16(&Tmp16, &(ACPI_CAST_PTR (UINT16, Source)[i])); -+ AcpiDmDumpInteger16 (Tmp16, AcpiDmMemoryNames[i]); - break; - - case 32: - -- AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i], -- AcpiDmMemoryNames[i]); -+ ACPI_MOVE_32_TO_32(&Tmp32, &(ACPI_CAST_PTR (UINT32, Source)[i])); -+ AcpiDmDumpInteger32 (Tmp32, AcpiDmMemoryNames[i]); - break; - - default: -@@ -190,7 +191,9 @@ AcpiDmAddressFields ( - UINT32 Level) - { - UINT32 i; -- -+ UINT16 Tmp16; -+ UINT32 Tmp32; -+ UINT64 Tmp64; - - AcpiOsPrintf ("\n"); - -@@ -202,20 +205,20 @@ AcpiDmAddressFields ( - { - case 16: - -- AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i], -- AcpiDmAddressNames[i]); -+ ACPI_MOVE_16_TO_16(&Tmp16, &(ACPI_CAST_PTR (UINT16, Source)[i])); -+ AcpiDmDumpInteger16 (Tmp16, AcpiDmAddressNames[i]); - break; - - case 32: - -- AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i], -- AcpiDmAddressNames[i]); -+ ACPI_MOVE_32_TO_32(&Tmp32, &(ACPI_CAST_PTR (UINT32, Source)[i])); -+ AcpiDmDumpInteger32 (Tmp32, AcpiDmAddressNames[i]); - break; - - case 64: - -- AcpiDmDumpInteger64 (ACPI_CAST_PTR (UINT64, Source)[i], -- AcpiDmAddressNames[i]); -+ ACPI_MOVE_64_TO_64(&Tmp64, &(ACPI_CAST_PTR (UINT64, Source)[i])); -+ AcpiDmDumpInteger64 (Tmp64, AcpiDmAddressNames[i]); - break; - - default: -@@ -868,6 +871,7 @@ AcpiDmFixedMemory32Descriptor ( - UINT32 Length, - UINT32 Level) - { -+ UINT32 Tmp; - - /* Dump name and read/write flag */ - -@@ -876,12 +880,12 @@ AcpiDmFixedMemory32Descriptor ( - AcpiGbl_RwDecode [ACPI_GET_1BIT_FLAG (Resource->FixedMemory32.Flags)]); - - AcpiDmIndent (Level + 1); -- AcpiDmDumpInteger32 (Resource->FixedMemory32.Address, -- "Address Base"); -+ ACPI_MOVE_32_TO_32(&Tmp, &Resource->FixedMemory32.Address); -+ AcpiDmDumpInteger32 (Tmp, "Address Base"); - - AcpiDmIndent (Level + 1); -- AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength, -- "Address Length"); -+ ACPI_MOVE_32_TO_32(&Tmp, &Resource->FixedMemory32.AddressLength); -+ AcpiDmDumpInteger32 (Tmp, "Address Length"); - - /* Insert a descriptor name */ - -@@ -913,6 +917,7 @@ AcpiDmGenericRegisterDescriptor ( - UINT32 Length, - UINT32 Level) - { -+ UINT64 Tmp64; - - AcpiDmIndent (Level); - AcpiOsPrintf ("Register ("); -@@ -926,7 +931,9 @@ AcpiDmGenericRegisterDescriptor ( - AcpiDmDumpInteger8 (Resource->GenericReg.BitOffset, "Bit Offset"); - - AcpiDmIndent (Level + 1); -- AcpiDmDumpInteger64 (Resource->GenericReg.Address, "Address"); -+ /* AcpiDmDumpInteger64 (Resource->GenericReg.Address, "Address"); */ -+ ACPI_MOVE_64_TO_64(&Tmp64, &Resource->GenericReg.Address); -+ AcpiDmDumpInteger64 (Tmp64, "Address"); - - /* Optional field for ACPI 3.0 */ - -@@ -972,7 +979,7 @@ AcpiDmInterruptDescriptor ( - UINT32 Level) - { - UINT32 i; -- -+ UINT16 Tmp16; - - AcpiDmIndent (Level); - AcpiOsPrintf ("Interrupt (%s, %s, %s, %s, ", -@@ -986,10 +993,11 @@ AcpiDmInterruptDescriptor ( - * list. Must compute length based on length of the list. First xrupt - * is included in the struct (reason for -1 below) - */ -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->ExtendedIrq.ResourceLength); - AcpiDmResourceSource (Resource, - sizeof (AML_RESOURCE_EXTENDED_IRQ) + - ((UINT32) Resource->ExtendedIrq.InterruptCount - 1) * sizeof (UINT32), -- Resource->ExtendedIrq.ResourceLength); -+ Tmp16); - - /* Insert a descriptor name */ - -@@ -1002,9 +1010,12 @@ AcpiDmInterruptDescriptor ( - AcpiOsPrintf ("{\n"); - for (i = 0; i < Resource->ExtendedIrq.InterruptCount; i++) - { -+ UINT32 Tmp32, Val32; -+ - AcpiDmIndent (Level + 1); -- AcpiOsPrintf ("0x%8.8X,\n", -- (UINT32) Resource->ExtendedIrq.Interrupts[i]); -+ Val32 = (UINT32) Resource->ExtendedIrq.Interrupts[i]; -+ ACPI_MOVE_32_TO_32(&Tmp32, &Val32); -+ AcpiOsPrintf ("0x%8.8X,\n", Tmp32); - } - - AcpiDmIndent (Level); -Index: acpica-unix2-20170728/source/components/disassembler/dmresrcs.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/disassembler/dmresrcs.c -+++ acpica-unix2-20170728/source/components/disassembler/dmresrcs.c -@@ -72,6 +72,7 @@ AcpiDmIrqDescriptor ( - UINT32 Length, - UINT32 Level) - { -+ UINT16 Tmp; - - AcpiDmIndent (Level); - AcpiOsPrintf ("%s (", -@@ -93,7 +94,8 @@ AcpiDmIrqDescriptor ( - AcpiOsPrintf (")\n"); - - AcpiDmIndent (Level + 1); -- AcpiDmBitList (Resource->Irq.IrqMask); -+ ACPI_MOVE_16_TO_16(&Tmp, &Resource->Irq.IrqMask); -+ AcpiDmBitList (Tmp); - } - - -@@ -204,16 +206,19 @@ AcpiDmIoDescriptor ( - UINT32 Length, - UINT32 Level) - { -+ UINT16 Tmp16; - - AcpiDmIndent (Level); - AcpiOsPrintf ("IO (%s,\n", - AcpiGbl_IoDecode [ACPI_GET_1BIT_FLAG (Resource->Io.Flags)]); - - AcpiDmIndent (Level + 1); -- AcpiDmDumpInteger16 (Resource->Io.Minimum, "Range Minimum"); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Io.Minimum); -+ AcpiDmDumpInteger16 (Tmp16, "Range Minimum"); - - AcpiDmIndent (Level + 1); -- AcpiDmDumpInteger16 (Resource->Io.Maximum, "Range Maximum"); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Io.Maximum); -+ AcpiDmDumpInteger16 (Tmp16, "Range Maximum"); - - AcpiDmIndent (Level + 1); - AcpiDmDumpInteger8 (Resource->Io.Alignment, "Alignment"); -@@ -251,12 +256,14 @@ AcpiDmFixedIoDescriptor ( - UINT32 Length, - UINT32 Level) - { -+ UINT16 Tmp16; - - AcpiDmIndent (Level); - AcpiOsPrintf ("FixedIO (\n"); - - AcpiDmIndent (Level + 1); -- AcpiDmDumpInteger16 (Resource->FixedIo.Address, "Address"); -+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->FixedIo.Address); -+ AcpiDmDumpInteger16 (Tmp16, "Address"); - - AcpiDmIndent (Level + 1); - AcpiDmDumpInteger8 (Resource->FixedIo.AddressLength, "Length"); -Index: acpica-unix2-20170728/source/components/dispatcher/dsfield.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/dispatcher/dsfield.c -+++ acpica-unix2-20170728/source/components/dispatcher/dsfield.c -@@ -320,6 +320,7 @@ AcpiDsGetFieldNames ( - ACPI_STATUS Status; - UINT64 Position; - ACPI_PARSE_OBJECT *Child; -+ UINT32 TmpName; - - - ACPI_FUNCTION_TRACE_PTR (DsGetFieldNames, Info); -@@ -426,10 +427,17 @@ AcpiDsGetFieldNames ( - - /* Lookup the name, it should already exist */ - -+ ACPI_MOVE_32_TO_32(&TmpName, &Arg->Named.Name); -+ Status = AcpiNsLookup (WalkState->ScopeInfo, -+ (char *) &TmpName, Info->FieldType, -+ ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, -+ WalkState, &Info->FieldNode); -+ /* - Status = AcpiNsLookup (WalkState->ScopeInfo, - (char *) &Arg->Named.Name, Info->FieldType, - ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, - WalkState, &Info->FieldNode); -+ */ - if (ACPI_FAILURE (Status)) - { - ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status); -@@ -656,9 +664,17 @@ AcpiDsInitFieldObjects ( - */ - if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP) - { -+ UINT32 TmpName; -+ -+ ACPI_MOVE_32_TO_32(&TmpName, &Arg->Named.Name); -+ Status = AcpiNsLookup (WalkState->ScopeInfo, -+ (char *) &TmpName, Type, ACPI_IMODE_LOAD_PASS1, -+ Flags, WalkState, &Node); -+ /* - Status = AcpiNsLookup (WalkState->ScopeInfo, - (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1, - Flags, WalkState, &Node); -+ */ - if (ACPI_FAILURE (Status)) - { - ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status); -Index: acpica-unix2-20170728/source/components/events/evgpeblk.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/events/evgpeblk.c -+++ acpica-unix2-20170728/source/components/events/evgpeblk.c -@@ -376,6 +376,7 @@ AcpiEvCreateGpeBlock ( - ACPI_STATUS Status; - ACPI_GPE_BLOCK_INFO *GpeBlock; - ACPI_GPE_WALK_INFO WalkInfo; -+ char Name[ACPI_NAME_SIZE + 1]; - - - ACPI_FUNCTION_TRACE (EvCreateGpeBlock); -@@ -396,7 +397,7 @@ AcpiEvCreateGpeBlock ( - - /* Initialize the new GPE block */ - -- GpeBlock->Address = Address; -+ ACPI_MOVE_64_TO_64(&GpeBlock->Address, &Address); - GpeBlock->SpaceId = SpaceId; - GpeBlock->Node = GpeDevice; - GpeBlock->GpeCount = (UINT16) (RegisterCount * ACPI_GPE_REGISTER_WIDTH); -@@ -445,11 +446,13 @@ AcpiEvCreateGpeBlock ( - (*ReturnGpeBlock) = GpeBlock; - } - -+ memset(&Name, 0, ACPI_NAME_SIZE + 1); -+ ACPI_MOVE_32_TO_32(&Name, &GpeDevice->Name.Ascii); - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, - " Initialized GPE %02X to %02X [%4.4s] %u regs on interrupt 0x%X%s\n", - (UINT32) GpeBlock->BlockBaseNumber, - (UINT32) (GpeBlock->BlockBaseNumber + (GpeBlock->GpeCount - 1)), -- GpeDevice->Name.Ascii, GpeBlock->RegisterCount, InterruptNumber, -+ Name, GpeBlock->RegisterCount, InterruptNumber, - InterruptNumber == AcpiGbl_FADT.SciInterrupt ? " (SCI)" : "")); - - /* Update global count of currently available GPEs */ -Index: acpica-unix2-20170728/source/components/hardware/hwregs.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/hardware/hwregs.c -+++ acpica-unix2-20170728/source/components/hardware/hwregs.c -@@ -197,7 +197,7 @@ AcpiHwValidateRegister ( - * Address must not be null. A null address also indicates an optional - * ACPI register that is not supported, so no error message. - */ -- ACPI_MOVE_64_TO_64 (Address, &Reg->Address); -+ *Address = Reg->Address; - if (!(*Address)) - { - return (AE_BAD_ADDRESS); -Index: acpica-unix2-20170728/source/components/hardware/hwvalid.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/hardware/hwvalid.c -+++ acpica-unix2-20170728/source/components/hardware/hwvalid.c -@@ -135,6 +135,8 @@ AcpiHwValidateIoRequest ( - UINT32 ByteWidth; - ACPI_IO_ADDRESS LastAddress; - const ACPI_PORT_INFO *PortInfo; -+ UINT64 Max16; -+ UINT64 Tmp64; - - - ACPI_FUNCTION_NAME (HwValidateIoRequest); -@@ -161,7 +163,10 @@ AcpiHwValidateIoRequest ( - - /* Maximum 16-bit address in I/O space */ - -- if (LastAddress > ACPI_UINT16_MAX) -+ Max16 = (UINT64) ACPI_UINT16_MAX; -+ ACPI_MOVE_64_TO_64(&Tmp64, &Max16); -+ -+ if ((UINT64)LastAddress > Tmp64) - { - ACPI_ERROR ((AE_INFO, - "Illegal I/O port address/length above 64K: %8.8X%8.8X/0x%X", -Index: acpica-unix2-20170728/source/components/namespace/nsaccess.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/namespace/nsaccess.c -+++ acpica-unix2-20170728/source/components/namespace/nsaccess.c -@@ -313,6 +313,7 @@ AcpiNsLookup ( - ACPI_OBJECT_TYPE ThisSearchType; - UINT32 SearchParentFlag = ACPI_NS_SEARCH_PARENT; - UINT32 LocalFlags; -+ UINT32 Tmp32; - - - ACPI_FUNCTION_TRACE (NsLookup); -@@ -702,9 +703,10 @@ AcpiNsLookup ( - { - /* Complain about a type mismatch */ - -+ ACPI_MOVE_32_TO_32(&Tmp32, &SimpleName); - ACPI_WARNING ((AE_INFO, - "NsLookup: Type mismatch on %4.4s (%s), searching for (%s)", -- ACPI_CAST_PTR (char, &SimpleName), -+ ACPI_CAST_PTR (char, &Tmp32), - AcpiUtGetTypeName (ThisNode->Type), - AcpiUtGetTypeName (TypeToCheckFor))); - } -Index: acpica-unix2-20170728/source/components/namespace/nsparse.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/namespace/nsparse.c -+++ acpica-unix2-20170728/source/components/namespace/nsparse.c -@@ -196,13 +196,14 @@ AcpiNsOneCompleteParse ( - - /* Table must consist of at least a complete header */ - -- if (Table->Length < sizeof (ACPI_TABLE_HEADER)) -+ ACPI_MOVE_32_TO_32(&AmlLength, &Table->Length); -+ if (AmlLength < sizeof (ACPI_TABLE_HEADER)) - { - return_ACPI_STATUS (AE_BAD_HEADER); - } - - AmlStart = (UINT8 *) Table + sizeof (ACPI_TABLE_HEADER); -- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER); -+ AmlLength -= sizeof (ACPI_TABLE_HEADER); - - Status = AcpiTbGetOwnerId (TableIndex, &OwnerId); - if (ACPI_FAILURE (Status)) -Index: acpica-unix2-20170728/source/components/tables/tbdata.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/tables/tbdata.c -+++ acpica-unix2-20170728/source/components/tables/tbdata.c -@@ -552,6 +552,7 @@ AcpiTbVerifyTempTable ( - UINT32 *TableIndex) - { - ACPI_STATUS Status = AE_OK; -+ UINT32 Length; - - - ACPI_FUNCTION_TRACE (TbVerifyTempTable); -@@ -581,7 +582,8 @@ AcpiTbVerifyTempTable ( - { - /* Verify the checksum */ - -- Status = AcpiTbVerifyChecksum (TableDesc->Pointer, TableDesc->Length); -+ ACPI_MOVE_32_TO_32(&Length, &TableDesc->Length); -+ Status = AcpiTbVerifyChecksum (TableDesc->Pointer, Length); - if (ACPI_FAILURE (Status)) - { - ACPI_EXCEPTION ((AE_INFO, AE_NO_MEMORY, -Index: acpica-unix2-20170728/source/components/tables/tbfadt.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/tables/tbfadt.c -+++ acpica-unix2-20170728/source/components/tables/tbfadt.c -@@ -520,6 +520,8 @@ AcpiTbConvertFadt ( - UINT8 Length; - UINT8 Flags; - UINT32 i; -+ UINT32 Tmp32; -+ UINT64 Tmp64; - - - /* -@@ -533,7 +535,8 @@ AcpiTbConvertFadt ( - * Note: The FADT revision value is unreliable. Only the length can be - * trusted. - */ -- if (AcpiGbl_FADT.Header.Length <= ACPI_FADT_V2_SIZE) -+ ACPI_MOVE_32_TO_32(&Tmp32, &AcpiGbl_FADT.Header.Length); -+ if (Tmp32 <= ACPI_FADT_V2_SIZE) - { - AcpiGbl_FADT.PreferredProfile = 0; - AcpiGbl_FADT.PstateControl = 0; -@@ -546,14 +549,15 @@ AcpiTbConvertFadt ( - * current FADT version as defined by the ACPI specification. - * Thus, we will have a common FADT internally. - */ -- AcpiGbl_FADT.Header.Length = sizeof (ACPI_TABLE_FADT); -+ Tmp32 = sizeof (ACPI_TABLE_FADT); -+ ACPI_MOVE_32_TO_32(&AcpiGbl_FADT.Header.Length, &Tmp32); - - /* - * Expand the 32-bit DSDT addresses to 64-bit as necessary. - * Later ACPICA code will always use the X 64-bit field. - */ -- AcpiGbl_FADT.XDsdt = AcpiTbSelectAddress ("DSDT", -- AcpiGbl_FADT.Dsdt, AcpiGbl_FADT.XDsdt); -+ Tmp64 = AcpiTbSelectAddress ("DSDT", AcpiGbl_FADT.Dsdt, AcpiGbl_FADT.XDsdt); -+ ACPI_MOVE_64_TO_64(&AcpiGbl_FADT.XDsdt, &Tmp64); - - /* If Hardware Reduced flag is set, we are all done */ - -@@ -614,7 +618,9 @@ AcpiTbConvertFadt ( - { - if (Address64->Address) - { -- if (Address64->Address != (UINT64) Address32) -+ ACPI_MOVE_32_TO_32(&Tmp32, &Address32); -+ ACPI_MOVE_64_TO_64(&Tmp64, &Address64->Address); -+ if (Tmp64 != (UINT64) Tmp32) - { - /* Address mismatch */ - -@@ -655,9 +661,11 @@ AcpiTbConvertFadt ( - */ - if (!Address64->Address || AcpiGbl_Use32BitFadtAddresses) - { -+ ACPI_MOVE_32_TO_32(&Tmp32, &Address32); /* back to host order */ -+ Tmp64 = (UINT64) Tmp32; /* promote only */ - AcpiTbInitGenericAddress (Address64, - ACPI_ADR_SPACE_SYSTEM_IO, Length, -- (UINT64) Address32, Name, Flags); -+ Tmp64, Name, Flags); - } - } - -@@ -780,10 +788,14 @@ AcpiTbSetupFadtRegisters ( - - if (Source64->Address) - { -+ UINT64 Tmp64, Addr64; -+ -+ ACPI_MOVE_64_TO_64(&Tmp64, &Source64->Address); -+ Tmp64 += (FadtPmInfoTable[i].RegisterNum * Pm1RegisterByteWidth); -+ ACPI_MOVE_64_TO_64(&Addr64, &Tmp64); - AcpiTbInitGenericAddress (FadtPmInfoTable[i].Target, - Source64->SpaceId, Pm1RegisterByteWidth, -- Source64->Address + -- (FadtPmInfoTable[i].RegisterNum * Pm1RegisterByteWidth), -+ Addr64, - "PmRegisters", 0); - } - } -Index: acpica-unix2-20170728/source/components/tables/tbfind.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/tables/tbfind.c -+++ acpica-unix2-20170728/source/components/tables/tbfind.c -@@ -108,8 +108,11 @@ AcpiTbFindTable ( - (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES); - for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i) - { -+ UINT32 Tmp32; -+ -+ ACPI_MOVE_32_TO_32(&Tmp32, &Header.Signature); - if (memcmp (&(AcpiGbl_RootTableList.Tables[i].Signature), -- Header.Signature, ACPI_NAME_SIZE)) -+ &Tmp32, ACPI_NAME_SIZE)) - { - /* Not the requested table */ - -Index: acpica-unix2-20170728/source/components/tables/tbprint.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/tables/tbprint.c -+++ acpica-unix2-20170728/source/components/tables/tbprint.c -@@ -143,15 +143,18 @@ AcpiTbPrintTableHeader ( - ACPI_TABLE_HEADER *Header) - { - ACPI_TABLE_HEADER LocalHeader; -+ UINT32 Len; -+ UINT32 OemRev; -+ UINT32 CompilerRev; - - - if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_FACS)) - { - /* FACS only has signature and length fields */ - -+ ACPI_MOVE_32_TO_32(&Len, &Header->Length); - ACPI_INFO (("%-4.4s 0x%8.8X%8.8X %06X", -- Header->Signature, ACPI_FORMAT_UINT64 (Address), -- Header->Length)); -+ Header->Signature, ACPI_FORMAT_UINT64 (Address), Len)); - } - else if (ACPI_VALIDATE_RSDP_SIG (Header->Signature)) - { -@@ -174,13 +177,16 @@ AcpiTbPrintTableHeader ( - - AcpiTbCleanupTableHeader (&LocalHeader, Header); - -+ ACPI_MOVE_32_TO_32(&Len, &LocalHeader.Length); -+ ACPI_MOVE_32_TO_32(&OemRev, &LocalHeader.OemRevision); -+ ACPI_MOVE_32_TO_32(&CompilerRev, &LocalHeader.AslCompilerRevision); - ACPI_INFO (( - "%-4.4s 0x%8.8X%8.8X" - " %06X (v%.2d %-6.6s %-8.8s %08X %-4.4s %08X)", - LocalHeader.Signature, ACPI_FORMAT_UINT64 (Address), -- LocalHeader.Length, LocalHeader.Revision, LocalHeader.OemId, -- LocalHeader.OemTableId, LocalHeader.OemRevision, -- LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision)); -+ Len, LocalHeader.Revision, LocalHeader.OemId, -+ LocalHeader.OemTableId, OemRev, -+ LocalHeader.AslCompilerId, CompilerRev)); - } - } - -Index: acpica-unix2-20170728/source/components/tables/tbutils.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/tables/tbutils.c -+++ acpica-unix2-20170728/source/components/tables/tbutils.c -@@ -238,7 +238,7 @@ AcpiTbGetRootTableEntry ( - * 64-bit platform, XSDT: Move (unaligned) 64-bit to local, - * return 64-bit - */ -- ACPI_MOVE_64_TO_64 (&Address64, TableEntry); -+ Address64 = (UINT64) TableEntry; - - #if ACPI_MACHINE_WIDTH == 32 - if (Address64 > ACPI_UINT32_MAX) -@@ -251,7 +251,8 @@ AcpiTbGetRootTableEntry ( - ACPI_FORMAT_UINT64 (Address64))); - } - #endif -- return ((ACPI_PHYSICAL_ADDRESS) (Address64)); -+ return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR ( -+ UINT64, Address64))); - } - } - -@@ -287,6 +288,7 @@ AcpiTbParseRootTable ( - UINT8 *TableEntry; - ACPI_STATUS Status; - UINT32 TableIndex; -+ UINT32 Tmp32; - - - ACPI_FUNCTION_TRACE (TbParseRootTable); -@@ -345,7 +347,7 @@ AcpiTbParseRootTable ( - * Validate length of the table, and map entire table. - * Minimum length table must contain at least one entry. - */ -- Length = Table->Length; -+ ACPI_MOVE_32_TO_32(&Length, &Table->Length); - AcpiOsUnmapMemory (Table, sizeof (ACPI_TABLE_HEADER)); - - if (Length < (sizeof (ACPI_TABLE_HEADER) + TableEntrySize)) -@@ -372,7 +374,7 @@ AcpiTbParseRootTable ( - - /* Get the number of entries and pointer to first entry */ - -- TableCount = (UINT32) ((Table->Length - sizeof (ACPI_TABLE_HEADER)) / -+ TableCount = (UINT32) ((Length - sizeof (ACPI_TABLE_HEADER)) / - TableEntrySize); - TableEntry = ACPI_ADD_PTR (UINT8, Table, sizeof (ACPI_TABLE_HEADER)); - -@@ -394,10 +396,10 @@ AcpiTbParseRootTable ( - Status = AcpiTbInstallStandardTable (Address, - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, &TableIndex); - -+ ACPI_MOVE_32_TO_32(&Tmp32, -+ &AcpiGbl_RootTableList.Tables[TableIndex].Signature); - if (ACPI_SUCCESS (Status) && -- ACPI_COMPARE_NAME ( -- &AcpiGbl_RootTableList.Tables[TableIndex].Signature, -- ACPI_SIG_FADT)) -+ ACPI_COMPARE_NAME (&Tmp32, ACPI_SIG_FADT)) - { - AcpiGbl_FadtIndex = TableIndex; - AcpiTbParseFadt (); -Index: acpica-unix2-20170728/source/components/tables/tbxface.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/tables/tbxface.c -+++ acpica-unix2-20170728/source/components/tables/tbxface.c -@@ -290,8 +290,11 @@ AcpiGetTableHeader ( - - for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++) - { -+ UINT32 Tmp32; -+ -+ ACPI_MOVE_32_TO_32(&Tmp32, (UINT32 *)Signature); - if (!ACPI_COMPARE_NAME ( -- &(AcpiGbl_RootTableList.Tables[i].Signature), Signature)) -+ &(AcpiGbl_RootTableList.Tables[i].Signature), &Tmp32)) - { - continue; - } -Index: acpica-unix2-20170728/source/components/tables/tbxfload.c -=================================================================== ---- acpica-unix2-20170728.orig/source/components/tables/tbxfload.c -+++ acpica-unix2-20170728/source/components/tables/tbxfload.c -@@ -156,6 +156,7 @@ AcpiTbLoadNamespace ( - ACPI_TABLE_DESC *Table; - UINT32 TablesLoaded = 0; - UINT32 TablesFailed = 0; -+ UINT32 Tmp32; - - - ACPI_FUNCTION_TRACE (TbLoadNamespace); -@@ -169,8 +170,9 @@ AcpiTbLoadNamespace ( - */ - Table = &AcpiGbl_RootTableList.Tables[AcpiGbl_DsdtIndex]; - -+ ACPI_MOVE_32_TO_32(&Tmp32, &Table->Signature.Ascii); - if (!AcpiGbl_RootTableList.CurrentTableCount || -- !ACPI_COMPARE_NAME (Table->Signature.Ascii, ACPI_SIG_DSDT) || -+ !ACPI_COMPARE_NAME (&Tmp32, ACPI_SIG_DSDT) || - ACPI_FAILURE (AcpiTbValidateTable (Table))) - { - Status = AE_NO_ACPI_TABLES; -Index: acpica-unix2-20170728/source/include/acmacros.h -=================================================================== ---- acpica-unix2-20170728.orig/source/include/acmacros.h -+++ acpica-unix2-20170728/source/include/acmacros.h -@@ -98,7 +98,9 @@ - ((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\ - ((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];} - --/* 32-bit source, 16/32/64 destination */ -+/* 32-bit source, 8/16/32/64 destination */ -+ -+#define ACPI_MOVE_32_TO_8(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];} - - #define ACPI_MOVE_32_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];\ - (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[2];} -@@ -114,7 +116,9 @@ - ((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\ - ((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];} - --/* 64-bit source, 16/32/64 destination */ -+/* 64-bit source, 8/16/32/64 destination */ -+ -+#define ACPI_MOVE_64_TO_8(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];} - - #define ACPI_MOVE_64_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\ - (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];} -@@ -141,13 +145,16 @@ - - /* The hardware supports unaligned transfers, just do the little-endian move */ - --/* 16-bit source, 16/32/64 destination */ -+/* 16-bit source, 8/16/32/64 destination */ - -+#define ACPI_MOVE_16_TO_8(d, s) *(UINT8 *)(void *)(d) = *(UINT16 *)(void *)(s) - #define ACPI_MOVE_16_TO_16(d, s) *(UINT16 *)(void *)(d) = *(UINT16 *)(void *)(s) - #define ACPI_MOVE_16_TO_32(d, s) *(UINT32 *)(void *)(d) = *(UINT16 *)(void *)(s) - #define ACPI_MOVE_16_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT16 *)(void *)(s) - --/* 32-bit source, 16/32/64 destination */ -+/* 32-bit source, 8/16/32/64 destination */ -+ -+#define ACPI_MOVE_32_TO_8(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];} - - #define ACPI_MOVE_32_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\ - (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];} -@@ -155,8 +162,9 @@ - #define ACPI_MOVE_32_TO_32(d, s) *(UINT32 *)(void *)(d) = *(UINT32 *)(void *)(s) - #define ACPI_MOVE_32_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT32 *)(void *)(s) - --/* 64-bit source, 16/32/64 destination */ -+/* 64-bit source, 8/16/32/64 destination */ - -+#define ACPI_MOVE_64_TO_8(d, s) ACPI_MOVE_16_TO_8(d, s) /* Truncate to 8 */ - #define ACPI_MOVE_64_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ - #define ACPI_MOVE_64_TO_32(d, s) ACPI_MOVE_32_TO_32(d, s) /* Truncate to 32 */ - #define ACPI_MOVE_64_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT64 *)(void *)(s) -@@ -176,7 +184,9 @@ - #define ACPI_MOVE_16_TO_32(d, s) {(*(UINT32 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d, s);} - #define ACPI_MOVE_16_TO_64(d, s) {(*(UINT64 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d, s);} - --/* 32-bit source, 16/32/64 destination */ -+/* 32-bit source, 8/16/32/64 destination */ -+ -+#define ACPI_MOVE_32_TO_8(d, s) ACPI_MOVE_16_TO_8(d, s) /* Truncate to 8 */ - - #define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ - -Index: acpica-unix2-20170728/source/include/platform/aclinux.h -=================================================================== ---- acpica-unix2-20170728.orig/source/include/platform/aclinux.h -+++ acpica-unix2-20170728/source/include/platform/aclinux.h -@@ -226,6 +226,10 @@ - #define __cdecl - #endif - -+#if defined(__PPC64__) || defined(__s390x__) -+#define ACPI_BIG_ENDIAN -+#endif -+ - #endif /* __KERNEL__ */ - - #endif /* __ACLINUX_H__ */ -Index: acpica-unix2-20170728/source/tools/acpiexec/aetables.c -=================================================================== ---- acpica-unix2-20170728.orig/source/tools/acpiexec/aetables.c -+++ acpica-unix2-20170728/source/tools/acpiexec/aetables.c -@@ -146,21 +146,25 @@ AeInitializeTableHeader ( - char *Signature, - UINT32 Length) - { -+ UINT16 Tmp16; -+ UINT32 Tmp32; - - ACPI_MOVE_NAME (Header->Signature, Signature); -- Header->Length = Length; -+ ACPI_MOVE_32_TO_32(&Header->Length, &Length); - -- Header->OemRevision = 0x1001; -+ Tmp16 = 0x1001; -+ ACPI_MOVE_16_TO_16(&Header->OemRevision, &Tmp16); - strncpy (Header->OemId, "Intel", ACPI_OEM_ID_SIZE); - strncpy (Header->OemTableId, "AcpiExec", ACPI_OEM_TABLE_ID_SIZE); - strncpy (Header->AslCompilerId, "INTL", ACPI_NAME_SIZE); -- Header->AslCompilerRevision = ACPI_CA_VERSION; -+ Tmp32 = ACPI_CA_VERSION; -+ ACPI_MOVE_32_TO_32(&Header->AslCompilerRevision, &Tmp32); - - /* Set the checksum, must set to zero first */ - - Header->Checksum = 0; - Header->Checksum = (UINT8) -AcpiTbChecksum ( -- (void *) Header, Header->Length); -+ (void *) Header, Length); - } - - -@@ -188,6 +192,7 @@ AeBuildLocalTables ( - ACPI_NEW_TABLE_DESC *NextTable; - UINT32 NextIndex; - ACPI_TABLE_FADT *ExternalFadt = NULL; -+ UINT32 Tmp32; - - - /* -@@ -374,6 +379,8 @@ AeBuildLocalTables ( - } - else - { -+ UINT64 Tmp64; -+ - /* - * Build a local FADT so we can test the hardware/event init - */ -@@ -385,34 +392,44 @@ AeBuildLocalTables ( - LocalFADT.Facs = 0; - - LocalFADT.XDsdt = DsdtAddress; -- LocalFADT.XFacs = ACPI_PTR_TO_PHYSADDR (&LocalFACS); -+ Tmp64 = ACPI_PTR_TO_PHYSADDR (&LocalFACS); -+ ACPI_MOVE_64_TO_64(&LocalFADT.XFacs, &Tmp64); - - /* Miscellaneous FADT fields */ - - LocalFADT.Gpe0BlockLength = 0x08; -- LocalFADT.Gpe0Block = 0x00001234; -+ Tmp32 = 0x00001234; -+ ACPI_MOVE_32_TO_32(&LocalFADT.Gpe0Block, &Tmp32); - - LocalFADT.Gpe1BlockLength = 0x80; -- LocalFADT.Gpe1Block = 0x00005678; -+ Tmp32 = 0x00005678; -+ ACPI_MOVE_32_TO_32(&LocalFADT.Gpe1Block, &Tmp32); - LocalFADT.Gpe1Base = 100; - - LocalFADT.Pm1EventLength = 4; -- LocalFADT.Pm1aEventBlock = 0x00001aaa; -- LocalFADT.Pm1bEventBlock = 0x00001bbb; -+ Tmp32 = 0x00001aaa; -+ ACPI_MOVE_32_TO_32(&LocalFADT.Pm1aEventBlock, &Tmp32); -+ Tmp32 = 0x00001bbb; -+ ACPI_MOVE_32_TO_32(&LocalFADT.Pm1bEventBlock, &Tmp32); - - LocalFADT.Pm1ControlLength = 2; -- LocalFADT.Pm1aControlBlock = 0xB0; -+ Tmp32 = 0xB0; -+ ACPI_MOVE_32_TO_32(&LocalFADT.Pm1aControlBlock, &Tmp32); - - LocalFADT.PmTimerLength = 4; -- LocalFADT.PmTimerBlock = 0xA0; -+ Tmp32 = 0xA0; -+ ACPI_MOVE_32_TO_32(&LocalFADT.PmTimerBlock, &Tmp32); - -- LocalFADT.Pm2ControlBlock = 0xC0; -+ Tmp32 = 0xC0; -+ ACPI_MOVE_32_TO_32(&LocalFADT.Pm2ControlBlock, &Tmp32); - LocalFADT.Pm2ControlLength = 1; - - /* Setup one example X-64 GAS field */ - - LocalFADT.XPm1bEventBlock.SpaceId = ACPI_ADR_SPACE_SYSTEM_IO; -- LocalFADT.XPm1bEventBlock.Address = LocalFADT.Pm1bEventBlock; -+ ACPI_MOVE_32_TO_32(&Tmp32, &LocalFADT.Pm1bEventBlock); -+ Tmp64 = (UINT64)Tmp32; -+ ACPI_MOVE_64_TO_64(&LocalFADT.XPm1bEventBlock.Address, &Tmp64); - LocalFADT.XPm1bEventBlock.BitWidth = (UINT8) - ACPI_MUL_8 (LocalFADT.Pm1EventLength); - } -@@ -425,13 +442,17 @@ AeBuildLocalTables ( - memset (&LocalFACS, 0, sizeof (ACPI_TABLE_FACS)); - ACPI_MOVE_NAME (LocalFACS.Signature, ACPI_SIG_FACS); - -- LocalFACS.Length = sizeof (ACPI_TABLE_FACS); -- LocalFACS.GlobalLock = 0x11AA0011; -+ Tmp32 = sizeof (ACPI_TABLE_FACS); -+ ACPI_MOVE_32_TO_32(&LocalFACS.Length, &Tmp32); -+ Tmp32 = 0x11AA0011; -+ ACPI_MOVE_32_TO_32(&LocalFACS.GlobalLock, &Tmp32); - - /* Build the optional local tables */ - - if (AcpiGbl_LoadTestTables) - { -+ UINT32 Tmp32; -+ - /* - * Build a fake table [TEST] so that we make sure that the - * ACPICA core ignores it -@@ -440,11 +461,12 @@ AeBuildLocalTables ( - ACPI_MOVE_NAME (LocalTEST.Signature, "TEST"); - - LocalTEST.Revision = 1; -- LocalTEST.Length = sizeof (ACPI_TABLE_HEADER); -+ Tmp32 = sizeof (ACPI_TABLE_HEADER); -+ ACPI_MOVE_32_TO_32(&LocalTEST.Length, &Tmp32); - - LocalTEST.Checksum = 0; - LocalTEST.Checksum = (UINT8) -AcpiTbChecksum ( -- (void *) &LocalTEST, LocalTEST.Length); -+ (void *) &LocalTEST, Tmp32); - - /* - * Build a fake table with a bad signature [BAD!] so that we make -@@ -454,11 +476,12 @@ AeBuildLocalTables ( - ACPI_MOVE_NAME (LocalBADTABLE.Signature, "BAD!"); - - LocalBADTABLE.Revision = 1; -- LocalBADTABLE.Length = sizeof (ACPI_TABLE_HEADER); -+ Tmp32 = sizeof (ACPI_TABLE_HEADER); -+ ACPI_MOVE_32_TO_32(&LocalBADTABLE.Length, &Tmp32); - - LocalBADTABLE.Checksum = 0; - LocalBADTABLE.Checksum = (UINT8) -AcpiTbChecksum ( -- (void *) &LocalBADTABLE, LocalBADTABLE.Length); -+ (void *) &LocalBADTABLE, Tmp32); - } - - return (AE_OK);
commit 3c1be008357e72d46b619701cc4610a7b8889f46 Author: Al Stone ahs3@redhat.com Date: Fri Aug 18 18:28:34 2017 -0600
Fix stupid typo in ppc64le.patch
Signed-off-by: Al Stone ahs3@redhat.com
diff --git a/ppc64le.patch b/ppc64le.patch index af03da5..0567ee4 100644 --- a/ppc64le.patch +++ b/ppc64le.patch @@ -6,7 +6,7 @@ Index: acpica-unix2-20170728/source/include/platform/aclinux.h #define __cdecl #endif
-+#if __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ #if defined(__PPC64__) || defined(__s390x__) #define ACPI_BIG_ENDIAN #endif
commit 10e64345c6f768495fcc20bfa67c1e1156b5de5d Author: Al Stone ahs3@redhat.com Date: Fri Aug 18 18:22:02 2017 -0600
Fix ppc64le patch to detect big-endian properly
Signed-off-by: Al Stone ahs3@redhat.com
diff --git a/ppc64le.patch b/ppc64le.patch index d2fa669..af03da5 100644 --- a/ppc64le.patch +++ b/ppc64le.patch @@ -6,7 +6,7 @@ Index: acpica-unix2-20170728/source/include/platform/aclinux.h #define __cdecl #endif
-+#if defined(__BIG_ENDIAN) ++#if __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ #if defined(__PPC64__) || defined(__s390x__) #define ACPI_BIG_ENDIAN #endif
commit 99f1748353feef9a07f3ae5cfd96ec73bb7e3f36 Author: Al Stone ahs3@redhat.com Date: Fri Aug 18 17:44:43 2017 -0600
Re-enable full testing for s390x
Signed-off-by: Al Stone ahs3@redhat.com
diff --git a/acpica-tools.spec b/acpica-tools.spec index 292ee0e..b79ec9b 100644 --- a/acpica-tools.spec +++ b/acpica-tools.spec @@ -138,13 +138,7 @@ cd tests [ $? -eq 0 ] || exit 1
# misc tests -# -# temporarily disable this test case on s390x, at least until the -# remaining big-endian issues can be resolved; this appears to be -# a false negative result but only on s390x -%ifnarch s390x ./run-misc-tests.sh %{buildroot}%{_bindir} %{version} -%endif
# Template tests cd templates @@ -194,6 +188,7 @@ fi - Completed the big-endian fixes (I think) - Fix ppc64le.patch that inadvertently broke s390x - Minor patch refresh +- Re-enable full %check for s390x
* Mon Aug 14 2017 Al Stone ahs3@redhat.com - 20170728-2 - Start some long delayed clean-up
commit c045b7cf37ef193f4f668ce3ca837449c702cabd Author: Al Stone ahs3@redhat.com Date: Fri Aug 18 17:32:28 2017 -0600
Finish up the big-endian changes, hopefully
Signed-off-by: Al Stone ahs3@redhat.com
diff --git a/acpica-tools.spec b/acpica-tools.spec index 915272a..292ee0e 100644 --- a/acpica-tools.spec +++ b/acpica-tools.spec @@ -1,6 +1,6 @@ Name: acpica-tools Version: 20170728 -Release: 2%{?dist} +Release: 3%{?dist} Summary: ACPICA tools for the development and debug of ACPI tables
Group: Development/Languages @@ -190,6 +190,11 @@ fi
%changelog +* Fri Aug 18 2017 Al Stone ahs3@redhat.com - 20170728-3 +- Completed the big-endian fixes (I think) +- Fix ppc64le.patch that inadvertently broke s390x +- Minor patch refresh + * Mon Aug 14 2017 Al Stone ahs3@redhat.com - 20170728-2 - Start some long delayed clean-up - Temporarily disable one test section until all the big-endian issues diff --git a/big-endian.patch b/big-endian.patch index 483448f..b0988f7 100644 --- a/big-endian.patch +++ b/big-endian.patch @@ -1588,7 +1588,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c =================================================================== --- acpica-unix2-20170728.orig/source/compiler/aslrestype2s.c +++ acpica-unix2-20170728/source/compiler/aslrestype2s.c -@@ -340,6 +340,9 @@ RsDoGpioIntDescriptor ( +@@ -340,9 +340,14 @@ RsDoGpioIntDescriptor ( UINT16 VendorLength; UINT16 InterruptLength; UINT16 DescriptorSize; @@ -1598,7 +1598,37 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c UINT32 CurrentByteOffset; UINT32 PinCount = 0; UINT32 i; -@@ -396,21 +399,21 @@ RsDoGpioIntDescriptor ( ++ UINT16 Tmp16; ++ UINT16 Val16; + + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; +@@ -367,7 +372,7 @@ RsDoGpioIntDescriptor ( + sizeof (AML_RESOURCE_LARGE_HEADER)); + + Descriptor = Rnode->Buffer; +- Descriptor->Gpio.ResourceLength = DescriptorSize; ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResourceLength, &DescriptorSize); + Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; + Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; + Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_INT; +@@ -382,11 +387,11 @@ RsDoGpioIntDescriptor ( + + /* Setup offsets within the descriptor */ + +- Descriptor->Gpio.PinTableOffset = (UINT16) +- ACPI_PTR_DIFF (InterruptList, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (InterruptList, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.PinTableOffset, &Tmp16); + +- Descriptor->Gpio.ResSourceOffset = (UINT16) +- ACPI_PTR_DIFF (ResourceSource, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (ResourceSource, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResSourceOffset, &Tmp16); + + /* Process all child initialization nodes */ + +@@ -396,21 +401,21 @@ RsDoGpioIntDescriptor ( { case 0: /* Interrupt Mode - edge/level [Flag] (_MOD) */
@@ -1623,7 +1653,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE, CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 3, 2); break; -@@ -424,7 +427,7 @@ RsDoGpioIntDescriptor ( +@@ -424,7 +429,7 @@ RsDoGpioIntDescriptor (
case 4: /* Debounce Timeout [WORD] (_DBT) */
@@ -1632,7 +1662,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateWordField (InitializerOp, ACPI_RESTAG_DEBOUNCETIME, CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.DebounceTimeout)); break; -@@ -451,7 +454,7 @@ RsDoGpioIntDescriptor ( +@@ -451,7 +456,7 @@ RsDoGpioIntDescriptor (
case 7: /* Resource Usage (consumer/producer) */
@@ -1641,7 +1671,50 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c break;
case 8: /* Resource Tag (Descriptor Name) */ -@@ -516,6 +519,10 @@ RsDoGpioIntDescriptor ( +@@ -466,13 +471,14 @@ RsDoGpioIntDescriptor ( + * This field is required in order to calculate the length + * of the ResourceSource at runtime. + */ +- Descriptor->Gpio.VendorOffset = (UINT16) +- ACPI_PTR_DIFF (VendorData, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (VendorData, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorOffset, &Tmp16); + + if (RsGetVendorData (InitializerOp, VendorData, +- (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) ++ (CurrentByteOffset + Tmp16))) + { +- Descriptor->Gpio.VendorLength = VendorLength; ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorLength, ++ &VendorLength); + } + break; + +@@ -485,7 +491,9 @@ RsDoGpioIntDescriptor ( + * (implies resource source must immediately follow the pin list.) + * Name: _PIN + */ +- *InterruptList = (UINT16) InitializerOp->Asl.Value.Integer; ++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer; ++ ACPI_MOVE_16_TO_16(&Val16, &Tmp16); ++ *InterruptList = Val16; + InterruptList++; + PinCount++; + +@@ -507,8 +515,10 @@ RsDoGpioIntDescriptor ( + + /* Create a named field at the start of the list */ + +- RsCreateWordField (InitializerOp, ACPI_RESTAG_PIN, +- CurrentByteOffset + Descriptor->Gpio.PinTableOffset); ++ ACPI_MOVE_16_TO_16(&Tmp16, &Descriptor->Gpio.PinTableOffset); ++ Tmp16 += CurrentByteOffset; ++ ACPI_MOVE_16_TO_16(&Val16, &Tmp16); ++ RsCreateWordField (InitializerOp, ACPI_RESTAG_PIN, Val16); + } + break; + } +@@ -516,6 +526,10 @@ RsDoGpioIntDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); }
@@ -1652,7 +1725,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource); return (Rnode); -@@ -549,6 +556,10 @@ RsDoGpioIoDescriptor ( +@@ -549,9 +563,15 @@ RsDoGpioIoDescriptor ( UINT16 VendorLength; UINT16 InterruptLength; UINT16 DescriptorSize; @@ -1663,7 +1736,37 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c UINT32 CurrentByteOffset; UINT32 PinCount = 0; UINT32 i; -@@ -605,7 +616,7 @@ RsDoGpioIoDescriptor ( ++ UINT16 Tmp16; ++ UINT16 Val16; + + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; +@@ -577,7 +597,7 @@ RsDoGpioIoDescriptor ( + sizeof (AML_RESOURCE_LARGE_HEADER)); + + Descriptor = Rnode->Buffer; +- Descriptor->Gpio.ResourceLength = DescriptorSize; ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResourceLength, &DescriptorSize); + Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; + Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; + Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_IO; +@@ -591,11 +611,11 @@ RsDoGpioIoDescriptor ( + + /* Setup offsets within the descriptor */ + +- Descriptor->Gpio.PinTableOffset = (UINT16) +- ACPI_PTR_DIFF (InterruptList, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (InterruptList, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.PinTableOffset, &Tmp16); + +- Descriptor->Gpio.ResSourceOffset = (UINT16) +- ACPI_PTR_DIFF (ResourceSource, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (ResourceSource, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResSourceOffset, &Tmp16); + + /* Process all child initialization nodes */ + +@@ -605,7 +625,7 @@ RsDoGpioIoDescriptor ( { case 0: /* Share Type [Flags] (_SHR) */
@@ -1672,7 +1775,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE, CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 3); break; -@@ -619,21 +630,21 @@ RsDoGpioIoDescriptor ( +@@ -619,21 +639,21 @@ RsDoGpioIoDescriptor (
case 2: /* Debounce Timeout [WORD] (_DBT) */
@@ -1697,7 +1800,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_IORESTRICTION, CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 0, 2); break; -@@ -659,7 +670,7 @@ RsDoGpioIoDescriptor ( +@@ -659,7 +679,7 @@ RsDoGpioIoDescriptor (
case 7: /* Resource Usage (consumer/producer) */
@@ -1706,7 +1809,36 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c break;
case 8: /* Resource Tag (Descriptor Name) */ -@@ -723,6 +734,11 @@ RsDoGpioIoDescriptor ( +@@ -673,13 +693,14 @@ RsDoGpioIoDescriptor ( + * This field is required in order to calculate the length + * of the ResourceSource at runtime. + */ +- Descriptor->Gpio.VendorOffset = (UINT16) +- ACPI_PTR_DIFF (VendorData, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (VendorData, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorOffset, &Tmp16); + + if (RsGetVendorData (InitializerOp, VendorData, + (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) + { +- Descriptor->Gpio.VendorLength = VendorLength; ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorLength, ++ &VendorLength); + } + break; + +@@ -692,7 +713,9 @@ RsDoGpioIoDescriptor ( + * (implies resource source must immediately follow the pin list.) + * Name: _PIN + */ +- *InterruptList = (UINT16) InitializerOp->Asl.Value.Integer; ++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer; ++ ACPI_MOVE_16_TO_16(&Val16, &Tmp16); ++ *InterruptList = Val16; + InterruptList++; + PinCount++; + +@@ -723,6 +746,11 @@ RsDoGpioIoDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); }
@@ -1718,7 +1850,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource); return (Rnode); -@@ -753,6 +769,9 @@ RsDoI2cSerialBusDescriptor ( +@@ -753,8 +781,12 @@ RsDoI2cSerialBusDescriptor ( UINT16 ResSourceLength; UINT16 VendorLength; UINT16 DescriptorSize; @@ -1727,8 +1859,28 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c + UINT16 TypeSpecificFlags = 0; UINT32 CurrentByteOffset; UINT32 i; ++ UINT16 Tmp16; + + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; +@@ -777,12 +809,14 @@ RsDoI2cSerialBusDescriptor ( + sizeof (AML_RESOURCE_LARGE_HEADER));
-@@ -802,7 +821,7 @@ RsDoI2cSerialBusDescriptor ( + Descriptor = Rnode->Buffer; +- Descriptor->I2cSerialBus.ResourceLength = DescriptorSize; ++ ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.ResourceLength, ++ &DescriptorSize); + Descriptor->I2cSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; + Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION; + Descriptor->I2cSerialBus.TypeRevisionId = AML_RESOURCE_I2C_TYPE_REVISION; + Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE; +- Descriptor->I2cSerialBus.TypeDataLength = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength; ++ Tmp16 = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength; ++ ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.TypeDataLength, &Tmp16); + + if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_I2C_SERIALBUS_V2) + { +@@ -802,7 +836,7 @@ RsDoI2cSerialBusDescriptor ( { case 0: /* Slave Address [WORD] (_ADR) */
@@ -1737,7 +1889,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS, CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.SlaveAddress)); break; -@@ -816,14 +835,14 @@ RsDoI2cSerialBusDescriptor ( +@@ -816,14 +850,14 @@ RsDoI2cSerialBusDescriptor (
case 2: /* Connection Speed [DWORD] (_SPE) */
@@ -1754,7 +1906,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE, CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.TypeSpecificFlags), 0); break; -@@ -883,6 +902,9 @@ RsDoI2cSerialBusDescriptor ( +@@ -883,6 +917,9 @@ RsDoI2cSerialBusDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); }
@@ -1764,7 +1916,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource); return (Rnode); } -@@ -912,6 +934,9 @@ RsDoSpiSerialBusDescriptor ( +@@ -912,6 +949,9 @@ RsDoSpiSerialBusDescriptor ( UINT16 ResSourceLength; UINT16 VendorLength; UINT16 DescriptorSize; @@ -1774,7 +1926,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c UINT32 CurrentByteOffset; UINT32 i;
-@@ -962,21 +987,21 @@ RsDoSpiSerialBusDescriptor ( +@@ -962,21 +1002,21 @@ RsDoSpiSerialBusDescriptor ( { case 0: /* Device Selection [WORD] (_ADR) */
@@ -1799,7 +1951,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE, CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.TypeSpecificFlags), 0); break; -@@ -997,7 +1022,7 @@ RsDoSpiSerialBusDescriptor ( +@@ -997,7 +1037,7 @@ RsDoSpiSerialBusDescriptor (
case 5: /* Connection Speed [DWORD] (_SPE) */
@@ -1808,7 +1960,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED, CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.ConnectionSpeed)); break; -@@ -1071,6 +1096,10 @@ RsDoSpiSerialBusDescriptor ( +@@ -1071,6 +1111,10 @@ RsDoSpiSerialBusDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); }
@@ -1819,7 +1971,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource); return (Rnode); } -@@ -1100,6 +1129,10 @@ RsDoUartSerialBusDescriptor ( +@@ -1100,6 +1144,10 @@ RsDoUartSerialBusDescriptor ( UINT16 ResSourceLength; UINT16 VendorLength; UINT16 DescriptorSize; @@ -1830,7 +1982,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c UINT32 CurrentByteOffset; UINT32 i;
-@@ -1149,21 +1182,21 @@ RsDoUartSerialBusDescriptor ( +@@ -1149,21 +1197,21 @@ RsDoUartSerialBusDescriptor ( { case 0: /* Connection Speed (Baud Rate) [DWORD] (_SPE) */
@@ -1855,7 +2007,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_STOPBITS, CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 2, 2); break; -@@ -1177,7 +1210,7 @@ RsDoUartSerialBusDescriptor ( +@@ -1177,7 +1225,7 @@ RsDoUartSerialBusDescriptor (
case 4: /* Endianness [Flag] (_END) */
@@ -1864,7 +2016,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateBitField (InitializerOp, ACPI_RESTAG_ENDIANNESS, CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 7); break; -@@ -1191,21 +1224,21 @@ RsDoUartSerialBusDescriptor ( +@@ -1191,21 +1239,21 @@ RsDoUartSerialBusDescriptor (
case 6: /* Flow Control [Flags] (_FLC) */
@@ -1889,7 +2041,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_TX, CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TxFifoSize)); break; -@@ -1275,6 +1308,11 @@ RsDoUartSerialBusDescriptor ( +@@ -1275,6 +1323,11 @@ RsDoUartSerialBusDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); }
@@ -2724,7 +2876,115 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Offset += sizeof (UINT64); } } -@@ -524,17 +532,21 @@ AcpiDmDumpAsf ( +@@ -358,12 +366,12 @@ AcpiDmDumpFadt ( + ACPI_TABLE_HEADER *Table) + { + ACPI_STATUS Status; +- ++ UINT32 Length; + + /* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */ + +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, +- AcpiDmTableInfoFadt1); ++ ACPI_MOVE_32_TO_32(&Length, &Table->Length); ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt1); + if (ACPI_FAILURE (Status)) + { + return; +@@ -371,11 +379,9 @@ AcpiDmDumpFadt ( + + /* Check for FADT revision 2 fields (ACPI 1.0B MS extensions) */ + +- if ((Table->Length > ACPI_FADT_V1_SIZE) && +- (Table->Length <= ACPI_FADT_V2_SIZE)) ++ if ((Length > ACPI_FADT_V1_SIZE) && (Length <= ACPI_FADT_V2_SIZE)) + { +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, +- AcpiDmTableInfoFadt2); ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt2); + if (ACPI_FAILURE (Status)) + { + return; +@@ -384,10 +390,9 @@ AcpiDmDumpFadt ( + + /* Check for FADT revision 3/4 fields and up (ACPI 2.0+ extended data) */ + +- else if (Table->Length > ACPI_FADT_V2_SIZE) ++ else if (Length > ACPI_FADT_V2_SIZE) + { +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, +- AcpiDmTableInfoFadt3); ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt3); + if (ACPI_FAILURE (Status)) + { + return; +@@ -395,9 +400,9 @@ AcpiDmDumpFadt ( + + /* Check for FADT revision 5 fields and up (ACPI 5.0+) */ + +- if (Table->Length > ACPI_FADT_V3_SIZE) ++ if (Length > ACPI_FADT_V3_SIZE) + { +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, + AcpiDmTableInfoFadt5); + if (ACPI_FAILURE (Status)) + { +@@ -407,9 +412,9 @@ AcpiDmDumpFadt ( + + /* Check for FADT revision 6 fields and up (ACPI 6.0+) */ + +- if (Table->Length > ACPI_FADT_V3_SIZE) ++ if (Length > ACPI_FADT_V3_SIZE) + { +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, + AcpiDmTableInfoFadt6); + if (ACPI_FAILURE (Status)) + { +@@ -420,11 +425,11 @@ AcpiDmDumpFadt ( + + /* Validate various fields in the FADT, including length */ + +- AcpiTbCreateLocalFadt (Table, Table->Length); ++ AcpiTbCreateLocalFadt (Table, Length); + + /* Validate FADT length against the revision */ + +- AcpiDmValidateFadtLength (Table->Revision, Table->Length); ++ AcpiDmValidateFadtLength (Table->Revision, Length); + } + + +@@ -450,6 +455,7 @@ AcpiDmValidateFadtLength ( + UINT32 Length) + { + UINT32 ExpectedLength; ++ UINT32 Tmp32; + + + switch (Revision) +@@ -485,7 +491,8 @@ AcpiDmValidateFadtLength ( + return; + } + +- if (Length == ExpectedLength) ++ ACPI_MOVE_32_TO_32(&Tmp32, &Length); ++ if (Tmp32 == ExpectedLength) + { + return; + } +@@ -493,7 +500,7 @@ AcpiDmValidateFadtLength ( + AcpiOsPrintf ( + "\n// ACPI Warning: FADT revision %X does not match length: " + "found %X expected %X\n", +- Revision, Length, ExpectedLength); ++ Revision, Tmp32, ExpectedLength); + } + + +@@ -524,17 +531,21 @@ AcpiDmDumpAsf ( UINT32 DataOffset = 0; UINT32 i; UINT8 Type; @@ -2749,7 +3009,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -591,8 +603,7 @@ AcpiDmDumpAsf ( +@@ -591,8 +602,7 @@ AcpiDmDumpAsf ( return; }
@@ -2759,7 +3019,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -608,7 +619,7 @@ AcpiDmDumpAsf ( +@@ -608,7 +618,7 @@ AcpiDmDumpAsf ( for (i = 0; i < DataCount; i++) { AcpiOsPrintf ("\n"); @@ -2768,7 +3028,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DataTable, DataLength, DataInfoTable); if (ACPI_FAILURE (Status)) { -@@ -654,15 +665,14 @@ AcpiDmDumpAsf ( +@@ -654,15 +664,14 @@ AcpiDmDumpAsf (
/* Point to next subtable */
@@ -2787,7 +3047,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } }
-@@ -686,12 +696,13 @@ AcpiDmDumpCpep ( +@@ -686,12 +695,13 @@ AcpiDmDumpCpep ( { ACPI_STATUS Status; ACPI_CPEP_POLLING *SubTable; @@ -2802,7 +3062,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoCpep); if (ACPI_FAILURE (Status)) { -@@ -701,7 +712,7 @@ AcpiDmDumpCpep ( +@@ -701,7 +711,7 @@ AcpiDmDumpCpep ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset); @@ -2811,7 +3071,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -741,7 +752,10 @@ AcpiDmDumpCsrt ( +@@ -741,7 +751,10 @@ AcpiDmDumpCsrt ( ACPI_CSRT_GROUP *SubTable; ACPI_CSRT_SHARED_INFO *SharedInfoTable; ACPI_CSRT_DESCRIPTOR *SubSubTable; @@ -2823,7 +3083,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c UINT32 Offset = sizeof (ACPI_TABLE_CSRT); UINT32 SubOffset; UINT32 SubSubOffset; -@@ -752,14 +766,16 @@ AcpiDmDumpCsrt ( +@@ -752,14 +765,16 @@ AcpiDmDumpCsrt (
/* Subtables (Resource Groups) */
@@ -2842,7 +3102,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -779,19 +795,20 @@ AcpiDmDumpCsrt ( +@@ -779,19 +794,20 @@ AcpiDmDumpCsrt ( return; }
@@ -2867,7 +3127,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -801,7 +818,7 @@ AcpiDmDumpCsrt ( +@@ -801,7 +817,7 @@ AcpiDmDumpCsrt (
/* Resource-specific info buffer */
@@ -2876,7 +3136,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (InfoLength) { Status = AcpiDmDumpTable (Length, -@@ -816,16 +833,15 @@ AcpiDmDumpCsrt ( +@@ -816,16 +832,15 @@ AcpiDmDumpCsrt (
/* Point to next sub-subtable */
@@ -2897,7 +3157,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } }
-@@ -849,16 +865,20 @@ AcpiDmDumpDbg2 ( +@@ -849,16 +864,20 @@ AcpiDmDumpDbg2 ( { ACPI_STATUS Status; ACPI_DBG2_DEVICE *SubTable; @@ -2919,7 +3179,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDbg2); if (ACPI_FAILURE (Status)) { -@@ -868,11 +888,12 @@ AcpiDmDumpDbg2 ( +@@ -868,11 +887,12 @@ AcpiDmDumpDbg2 ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Table, Offset); @@ -2934,7 +3194,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -882,13 +903,13 @@ AcpiDmDumpDbg2 ( +@@ -882,13 +902,13 @@ AcpiDmDumpDbg2 (
for (i = 0; i < SubTable->RegisterCount; i++) { @@ -2951,7 +3211,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -899,13 +920,13 @@ AcpiDmDumpDbg2 ( +@@ -899,13 +919,13 @@ AcpiDmDumpDbg2 (
for (i = 0; i < SubTable->RegisterCount; i++) { @@ -2968,7 +3228,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -915,12 +936,13 @@ AcpiDmDumpDbg2 ( +@@ -915,12 +935,13 @@ AcpiDmDumpDbg2 ( /* Dump the Namestring (required) */
AcpiOsPrintf ("\n"); @@ -2984,7 +3244,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -930,9 +952,10 @@ AcpiDmDumpDbg2 ( +@@ -930,9 +951,10 @@ AcpiDmDumpDbg2 (
if (SubTable->OemDataOffset) { @@ -2998,7 +3258,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -941,9 +964,9 @@ AcpiDmDumpDbg2 ( +@@ -941,9 +963,9 @@ AcpiDmDumpDbg2 (
/* Point to next subtable */
@@ -3010,7 +3270,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } }
-@@ -967,17 +990,20 @@ AcpiDmDumpDmar ( +@@ -967,17 +989,20 @@ AcpiDmDumpDmar ( { ACPI_STATUS Status; ACPI_DMAR_HEADER *SubTable; @@ -3032,7 +3292,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDmar); if (ACPI_FAILURE (Status)) { -@@ -987,13 +1013,14 @@ AcpiDmDumpDmar ( +@@ -987,13 +1012,14 @@ AcpiDmDumpDmar ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset); @@ -3049,7 +3309,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1001,7 +1028,8 @@ AcpiDmDumpDmar ( +@@ -1001,7 +1027,8 @@ AcpiDmDumpDmar (
AcpiOsPrintf ("\n");
@@ -3059,7 +3319,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_DMAR_TYPE_HARDWARE_UNIT:
-@@ -1036,12 +1064,12 @@ AcpiDmDumpDmar ( +@@ -1036,12 +1063,12 @@ AcpiDmDumpDmar ( default:
AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n", @@ -3074,7 +3334,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1050,8 +1078,8 @@ AcpiDmDumpDmar ( +@@ -1050,8 +1077,8 @@ AcpiDmDumpDmar ( /* * Dump the optional device scope entries */ @@ -3085,7 +3345,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* These types do not support device scopes */
-@@ -1059,7 +1087,7 @@ AcpiDmDumpDmar ( +@@ -1059,7 +1086,7 @@ AcpiDmDumpDmar ( }
ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, SubTable, ScopeOffset); @@ -3094,7 +3354,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable, -@@ -1100,9 +1128,8 @@ AcpiDmDumpDmar ( +@@ -1100,9 +1127,8 @@ AcpiDmDumpDmar ( NextSubtable: /* Point to next subtable */
@@ -3106,7 +3366,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } }
-@@ -1129,12 +1156,15 @@ AcpiDmDumpDrtm ( +@@ -1129,12 +1155,15 @@ AcpiDmDumpDrtm ( ACPI_DRTM_RESOURCE_LIST *DrtmRl; ACPI_DRTM_DPS_ID *DrtmDps; UINT32 Count; @@ -3124,7 +3384,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1148,7 +1178,7 @@ AcpiDmDumpDrtm ( +@@ -1148,7 +1177,7 @@ AcpiDmDumpDrtm (
DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset); AcpiOsPrintf ("\n"); @@ -3133,7 +3393,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables), AcpiDmTableInfoDrtm0); if (ACPI_FAILURE (Status)) -@@ -1161,10 +1191,11 @@ AcpiDmDumpDrtm ( +@@ -1161,10 +1190,11 @@ AcpiDmDumpDrtm ( /* Dump Validated table addresses */
Count = 0; @@ -3148,7 +3408,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64), AcpiDmTableInfoDrtm0a); if (ACPI_FAILURE (Status)) -@@ -1180,7 +1211,7 @@ AcpiDmDumpDrtm ( +@@ -1180,7 +1210,7 @@ AcpiDmDumpDrtm (
DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset); AcpiOsPrintf ("\n"); @@ -3157,7 +3417,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources), AcpiDmTableInfoDrtm1); if (ACPI_FAILURE (Status)) -@@ -1193,10 +1224,11 @@ AcpiDmDumpDrtm ( +@@ -1193,10 +1223,11 @@ AcpiDmDumpDrtm ( /* Dump the Resource List */
Count = 0; @@ -3172,7 +3432,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (void, Table, Offset), sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a); if (ACPI_FAILURE (Status)) -@@ -1212,7 +1244,7 @@ AcpiDmDumpDrtm ( +@@ -1212,7 +1243,7 @@ AcpiDmDumpDrtm (
DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset); AcpiOsPrintf ("\n"); @@ -3181,7 +3441,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2); }
-@@ -1236,12 +1268,13 @@ AcpiDmDumpEinj ( +@@ -1236,12 +1267,13 @@ AcpiDmDumpEinj ( { ACPI_STATUS Status; ACPI_WHEA_HEADER *SubTable; @@ -3196,7 +3456,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoEinj); if (ACPI_FAILURE (Status)) { -@@ -1251,7 +1284,7 @@ AcpiDmDumpEinj ( +@@ -1251,7 +1283,7 @@ AcpiDmDumpEinj ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset); @@ -3205,7 +3465,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -1289,12 +1322,13 @@ AcpiDmDumpErst ( +@@ -1289,12 +1321,13 @@ AcpiDmDumpErst ( { ACPI_STATUS Status; ACPI_WHEA_HEADER *SubTable; @@ -3220,7 +3480,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoErst); if (ACPI_FAILURE (Status)) { -@@ -1304,7 +1338,7 @@ AcpiDmDumpErst ( +@@ -1304,7 +1337,7 @@ AcpiDmDumpErst ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset); @@ -3229,7 +3489,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -1342,17 +1376,19 @@ AcpiDmDumpFpdt ( +@@ -1342,17 +1375,19 @@ AcpiDmDumpFpdt ( { ACPI_STATUS Status; ACPI_FPDT_HEADER *SubTable; @@ -3251,7 +3511,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */
-@@ -1364,7 +1400,8 @@ AcpiDmDumpFpdt ( +@@ -1364,7 +1399,8 @@ AcpiDmDumpFpdt ( return; }
@@ -3261,7 +3521,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_FPDT_TYPE_BOOT:
-@@ -1378,8 +1415,7 @@ AcpiDmDumpFpdt ( +@@ -1378,8 +1414,7 @@ AcpiDmDumpFpdt (
default:
@@ -3271,7 +3531,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c
/* Attempt to continue */
-@@ -1427,16 +1463,19 @@ AcpiDmDumpGtdt ( +@@ -1427,16 +1462,19 @@ AcpiDmDumpGtdt ( { ACPI_STATUS Status; ACPI_GTDT_HEADER *SubTable; @@ -3292,7 +3552,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoGtdt); if (ACPI_FAILURE (Status)) { -@@ -1446,7 +1485,7 @@ AcpiDmDumpGtdt ( +@@ -1446,7 +1484,7 @@ AcpiDmDumpGtdt ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_GTDT_HEADER, Table, Offset); @@ -3301,7 +3561,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */
-@@ -1464,8 +1503,9 @@ AcpiDmDumpGtdt ( +@@ -1464,8 +1502,9 @@ AcpiDmDumpGtdt ( case ACPI_GTDT_TYPE_TIMER_BLOCK:
SubTableLength = sizeof (ACPI_GTDT_TIMER_BLOCK); @@ -3312,7 +3572,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c
InfoTable = AcpiDmTableInfoGtdt0; break; -@@ -1486,8 +1526,9 @@ AcpiDmDumpGtdt ( +@@ -1486,8 +1525,9 @@ AcpiDmDumpGtdt ( return; }
@@ -3323,7 +3583,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1546,16 +1587,18 @@ AcpiDmDumpHest ( +@@ -1546,16 +1586,18 @@ AcpiDmDumpHest ( { ACPI_STATUS Status; ACPI_HEST_HEADER *SubTable; @@ -3343,7 +3603,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHest); if (ACPI_FAILURE (Status)) { -@@ -1565,10 +1608,11 @@ AcpiDmDumpHest ( +@@ -1565,10 +1607,11 @@ AcpiDmDumpHest ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset); @@ -3357,7 +3617,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_HEST_TYPE_IA32_CHECK:
-@@ -1902,15 +1946,21 @@ AcpiDmDumpIort ( +@@ -1902,15 +1945,21 @@ AcpiDmDumpIort ( ACPI_IORT_SMMU *IortSmmu = NULL; UINT32 Offset; UINT32 NodeOffset; @@ -3381,7 +3641,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1921,18 +1971,19 @@ AcpiDmDumpIort ( +@@ -1921,18 +1970,19 @@ AcpiDmDumpIort (
/* Dump the OptionalPadding (optional) */
@@ -3406,7 +3666,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */
-@@ -1968,7 +2019,8 @@ AcpiDmDumpIort ( +@@ -1968,7 +2018,8 @@ AcpiDmDumpIort ( case ACPI_IORT_NODE_PCI_ROOT_COMPLEX:
InfoTable = AcpiDmTableInfoIort2; @@ -3416,7 +3676,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c break;
case ACPI_IORT_NODE_SMMU: -@@ -1981,7 +2033,8 @@ AcpiDmDumpIort ( +@@ -1981,7 +2032,8 @@ AcpiDmDumpIort ( case ACPI_IORT_NODE_SMMU_V3:
InfoTable = AcpiDmTableInfoIort4; @@ -3426,7 +3686,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c break;
default: -@@ -1991,7 +2044,8 @@ AcpiDmDumpIort ( +@@ -1991,7 +2043,8 @@ AcpiDmDumpIort (
/* Attempt to continue */
@@ -3436,7 +3696,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("Invalid zero length IORT node\n"); return; -@@ -2002,7 +2056,7 @@ AcpiDmDumpIort ( +@@ -2002,7 +2055,7 @@ AcpiDmDumpIort ( /* Dump the node subtable header */
AcpiOsPrintf ("\n"); @@ -3445,7 +3705,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), Length, InfoTable); if (ACPI_FAILURE (Status)) -@@ -2022,9 +2076,10 @@ AcpiDmDumpIort ( +@@ -2022,9 +2075,10 @@ AcpiDmDumpIort (
if (IortItsGroup) { @@ -3458,7 +3718,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), 4, AcpiDmTableInfoIort0a); NodeOffset += 4; -@@ -2036,11 +2091,11 @@ AcpiDmDumpIort ( +@@ -2036,11 +2090,11 @@ AcpiDmDumpIort (
/* Dump the Padding (optional) */
@@ -3474,7 +3734,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2057,8 +2112,8 @@ AcpiDmDumpIort ( +@@ -2057,8 +2111,8 @@ AcpiDmDumpIort ( if (IortSmmu) { Length = 2 * sizeof (UINT64); @@ -3485,7 +3745,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), Length, AcpiDmTableInfoIort3a); if (ACPI_FAILURE (Status)) -@@ -2066,10 +2121,11 @@ AcpiDmDumpIort ( +@@ -2066,10 +2120,11 @@ AcpiDmDumpIort ( return; }
@@ -3500,7 +3760,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), 8, AcpiDmTableInfoIort3b); if (ACPI_FAILURE (Status)) -@@ -2080,10 +2136,11 @@ AcpiDmDumpIort ( +@@ -2080,10 +2135,11 @@ AcpiDmDumpIort ( NodeOffset += 8; }
@@ -3515,7 +3775,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), 8, AcpiDmTableInfoIort3c); if (ACPI_FAILURE (Status)) -@@ -2103,12 +2160,13 @@ AcpiDmDumpIort ( +@@ -2103,12 +2159,13 @@ AcpiDmDumpIort (
/* Dump the ID mappings */
@@ -3532,7 +3792,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), Length, AcpiDmTableInfoIortMap); if (ACPI_FAILURE (Status)) -@@ -2122,8 +2180,9 @@ AcpiDmDumpIort ( +@@ -2122,8 +2179,9 @@ AcpiDmDumpIort ( NextSubTable: /* Point to next node subtable */
@@ -3544,7 +3804,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } }
-@@ -2154,11 +2213,14 @@ AcpiDmDumpIvrs ( +@@ -2154,11 +2212,14 @@ AcpiDmDumpIvrs ( ACPI_IVRS_DE_HEADER *DeviceEntry; ACPI_IVRS_HEADER *SubTable; ACPI_DMTABLE_INFO *InfoTable; @@ -3560,7 +3820,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2167,13 +2229,14 @@ AcpiDmDumpIvrs ( +@@ -2167,13 +2228,14 @@ AcpiDmDumpIvrs ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset); @@ -3578,7 +3838,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2200,7 +2263,7 @@ AcpiDmDumpIvrs ( +@@ -2200,7 +2262,7 @@ AcpiDmDumpIvrs (
/* Attempt to continue */
@@ -3587,7 +3847,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("Invalid zero length subtable\n"); return; -@@ -2211,8 +2274,8 @@ AcpiDmDumpIvrs ( +@@ -2211,8 +2273,8 @@ AcpiDmDumpIvrs ( /* Dump the subtable */
AcpiOsPrintf ("\n"); @@ -3598,7 +3858,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2226,7 +2289,7 @@ AcpiDmDumpIvrs ( +@@ -2226,7 +2288,7 @@ AcpiDmDumpIvrs ( DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, SubTable, sizeof (ACPI_IVRS_HARDWARE));
@@ -3607,7 +3867,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); /* -@@ -2288,7 +2351,7 @@ AcpiDmDumpIvrs ( +@@ -2288,7 +2350,7 @@ AcpiDmDumpIvrs (
/* Dump the Device Entry */
@@ -3616,7 +3876,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DeviceEntry, EntryLength, InfoTable); if (ACPI_FAILURE (Status)) { -@@ -2304,8 +2367,8 @@ AcpiDmDumpIvrs ( +@@ -2304,8 +2366,8 @@ AcpiDmDumpIvrs ( NextSubTable: /* Point to next subtable */
@@ -3627,7 +3887,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } }
-@@ -2331,7 +2394,7 @@ AcpiDmDumpLpit ( +@@ -2331,7 +2393,7 @@ AcpiDmDumpLpit ( { ACPI_STATUS Status; ACPI_LPIT_HEADER *SubTable; @@ -3636,7 +3896,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c UINT32 Offset = sizeof (ACPI_TABLE_LPIT); ACPI_DMTABLE_INFO *InfoTable; UINT32 SubTableLength; -@@ -2339,8 +2402,9 @@ AcpiDmDumpLpit ( +@@ -2339,8 +2401,9 @@ AcpiDmDumpLpit (
/* Subtables */
@@ -3647,7 +3907,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */
-@@ -2404,13 +2468,14 @@ AcpiDmDumpMadt ( +@@ -2404,13 +2467,14 @@ AcpiDmDumpMadt ( { ACPI_STATUS Status; ACPI_SUBTABLE_HEADER *SubTable; @@ -3663,7 +3923,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMadt); if (ACPI_FAILURE (Status)) { -@@ -2420,7 +2485,7 @@ AcpiDmDumpMadt ( +@@ -2420,7 +2484,7 @@ AcpiDmDumpMadt ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset); @@ -3672,7 +3932,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */
-@@ -2566,11 +2631,13 @@ AcpiDmDumpMcfg ( +@@ -2566,11 +2630,13 @@ AcpiDmDumpMcfg ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_MCFG); ACPI_MCFG_ALLOCATION *SubTable; @@ -3687,7 +3947,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2579,17 +2646,17 @@ AcpiDmDumpMcfg ( +@@ -2579,17 +2645,17 @@ AcpiDmDumpMcfg ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset); @@ -3709,7 +3969,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0); if (ACPI_FAILURE (Status)) { -@@ -2623,6 +2690,7 @@ AcpiDmDumpMpst ( +@@ -2623,6 +2689,7 @@ AcpiDmDumpMpst ( { ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_MPST); @@ -3717,7 +3977,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_MPST_POWER_NODE *SubTable0; ACPI_MPST_POWER_STATE *SubTable0A; ACPI_MPST_COMPONENT *SubTable0B; -@@ -2631,11 +2699,13 @@ AcpiDmDumpMpst ( +@@ -2631,11 +2698,13 @@ AcpiDmDumpMpst ( UINT16 SubtableCount; UINT32 PowerStateCount; UINT32 ComponentCount; @@ -3732,7 +3992,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2643,13 +2713,14 @@ AcpiDmDumpMpst ( +@@ -2643,13 +2712,14 @@ AcpiDmDumpMpst (
/* Subtable: Memory Power Node(s) */
@@ -3750,7 +4010,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0); if (ACPI_FAILURE (Status)) { -@@ -2658,8 +2729,8 @@ AcpiDmDumpMpst ( +@@ -2658,8 +2728,8 @@ AcpiDmDumpMpst (
/* Extract the sub-subtable counts */
@@ -3761,7 +4021,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Offset += sizeof (ACPI_MPST_POWER_NODE);
/* Sub-subtables - Memory Power State Structure(s) */ -@@ -2670,7 +2741,7 @@ AcpiDmDumpMpst ( +@@ -2670,7 +2740,7 @@ AcpiDmDumpMpst ( while (PowerStateCount) { AcpiOsPrintf ("\n"); @@ -3770,7 +4030,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A); if (ACPI_FAILURE (Status)) { -@@ -2680,7 +2751,7 @@ AcpiDmDumpMpst ( +@@ -2680,7 +2750,7 @@ AcpiDmDumpMpst ( SubTable0A++; PowerStateCount--; Offset += sizeof (ACPI_MPST_POWER_STATE); @@ -3779,7 +4039,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c
/* Sub-subtables - Physical Component ID Structure(s) */
-@@ -2693,7 +2764,7 @@ AcpiDmDumpMpst ( +@@ -2693,7 +2763,7 @@ AcpiDmDumpMpst (
while (ComponentCount) { @@ -3788,7 +4048,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B); if (ACPI_FAILURE (Status)) { -@@ -2708,17 +2779,19 @@ AcpiDmDumpMpst ( +@@ -2708,17 +2778,19 @@ AcpiDmDumpMpst ( /* Point to next Memory Power Node subtable */
SubtableCount--; @@ -3811,7 +4071,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1); if (ACPI_FAILURE (Status)) { -@@ -2733,10 +2806,10 @@ AcpiDmDumpMpst ( +@@ -2733,10 +2805,10 @@ AcpiDmDumpMpst ( SubTable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, SubTable1, sizeof (ACPI_MPST_DATA_HDR));
@@ -3824,7 +4084,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2); if (ACPI_FAILURE (Status)) { -@@ -2769,11 +2842,13 @@ AcpiDmDumpMsct ( +@@ -2769,11 +2841,13 @@ AcpiDmDumpMsct ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_MSCT); ACPI_MSCT_PROXIMITY *SubTable; @@ -3839,7 +4099,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2782,12 +2857,12 @@ AcpiDmDumpMsct ( +@@ -2782,12 +2856,12 @@ AcpiDmDumpMsct ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, Table, Offset); @@ -3854,7 +4114,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0); if (ACPI_FAILURE (Status)) { -@@ -2822,11 +2897,13 @@ AcpiDmDumpMtmr ( +@@ -2822,11 +2896,13 @@ AcpiDmDumpMtmr ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_MTMR); ACPI_MTMR_ENTRY *SubTable; @@ -3869,7 +4129,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2835,12 +2912,12 @@ AcpiDmDumpMtmr ( +@@ -2835,12 +2911,12 @@ AcpiDmDumpMtmr ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset); @@ -3884,7 +4144,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0); if (ACPI_FAILURE (Status)) { -@@ -2882,11 +2959,17 @@ AcpiDmDumpNfit ( +@@ -2882,11 +2958,17 @@ AcpiDmDumpNfit ( ACPI_NFIT_SMBIOS *SmbiosInfo = NULL; ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL; UINT32 i; @@ -3903,7 +4163,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2895,19 +2978,21 @@ AcpiDmDumpNfit ( +@@ -2895,19 +2977,21 @@ AcpiDmDumpNfit ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Table, Offset); @@ -3929,7 +4189,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_NFIT_TYPE_SYSTEM_ADDRESS:
-@@ -2959,7 +3044,7 @@ AcpiDmDumpNfit ( +@@ -2959,7 +3043,7 @@ AcpiDmDumpNfit (
/* Attempt to continue */
@@ -3938,7 +4198,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("Invalid zero length subtable\n"); return; -@@ -2968,8 +3053,8 @@ AcpiDmDumpNfit ( +@@ -2968,8 +3052,8 @@ AcpiDmDumpNfit ( }
AcpiOsPrintf ("\n"); @@ -3949,7 +4209,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2977,13 +3062,14 @@ AcpiDmDumpNfit ( +@@ -2977,13 +3061,14 @@ AcpiDmDumpNfit (
/* Per-subtable variable-length fields */
@@ -3967,7 +4227,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c &Interleave->LineOffset[i], sizeof (UINT32), AcpiDmTableInfoNfit2a); if (ACPI_FAILURE (Status)) -@@ -2997,12 +3083,11 @@ AcpiDmDumpNfit ( +@@ -2997,12 +3082,11 @@ AcpiDmDumpNfit (
case ACPI_NFIT_TYPE_SMBIOS:
@@ -3982,7 +4242,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), SmbiosInfo, Length, AcpiDmTableInfoNfit3a); -@@ -3016,9 +3101,10 @@ AcpiDmDumpNfit ( +@@ -3016,9 +3100,10 @@ AcpiDmDumpNfit (
case ACPI_NFIT_TYPE_FLUSH_ADDRESS:
@@ -3995,7 +4255,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c &Hint->HintAddress[i], sizeof (UINT64), AcpiDmTableInfoNfit6a); if (ACPI_FAILURE (Status)) -@@ -3037,8 +3123,8 @@ AcpiDmDumpNfit ( +@@ -3037,8 +3122,8 @@ AcpiDmDumpNfit ( NextSubTable: /* Point to next subtable */
@@ -4006,7 +4266,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } }
-@@ -3063,12 +3149,13 @@ AcpiDmDumpPcct ( +@@ -3063,12 +3148,13 @@ AcpiDmDumpPcct ( ACPI_STATUS Status; ACPI_PCCT_SUBSPACE *SubTable; ACPI_DMTABLE_INFO *InfoTable; @@ -4021,7 +4281,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPcct); if (ACPI_FAILURE (Status)) { -@@ -3078,7 +3165,7 @@ AcpiDmDumpPcct ( +@@ -3078,7 +3164,7 @@ AcpiDmDumpPcct ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, Table, Offset); @@ -4030,7 +4290,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */
-@@ -3164,16 +3251,21 @@ AcpiDmDumpPmtt ( +@@ -3164,16 +3250,21 @@ AcpiDmDumpPmtt ( ACPI_PMTT_HEADER *MemSubTable; ACPI_PMTT_HEADER *DimmSubTable; ACPI_PMTT_DOMAIN *DomainArray; @@ -4054,7 +4314,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPmtt); if (ACPI_FAILURE (Status)) { -@@ -3183,13 +3275,14 @@ AcpiDmDumpPmtt ( +@@ -3183,13 +3274,14 @@ AcpiDmDumpPmtt ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Table, Offset); @@ -4071,7 +4331,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3208,7 +3301,7 @@ AcpiDmDumpPmtt ( +@@ -3208,7 +3300,7 @@ AcpiDmDumpPmtt ( /* Dump the fixed-length portion of the subtable */
Status = AcpiDmDumpTable (Length, Offset, SubTable, @@ -4080,7 +4340,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3220,15 +3313,16 @@ AcpiDmDumpPmtt ( +@@ -3220,15 +3312,16 @@ AcpiDmDumpPmtt ( MemSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, SubTable, sizeof (ACPI_PMTT_SOCKET));
@@ -4100,7 +4360,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3248,7 +3342,7 @@ AcpiDmDumpPmtt ( +@@ -3248,7 +3341,7 @@ AcpiDmDumpPmtt (
Status = AcpiDmDumpTable (Length, Offset + MemOffset, MemSubTable, @@ -4109,7 +4369,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3256,13 +3350,14 @@ AcpiDmDumpPmtt ( +@@ -3256,13 +3349,14 @@ AcpiDmDumpPmtt (
/* Walk the variable count of proximity domains */
@@ -4127,7 +4387,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DomainCount) { Status = AcpiDmDumpTable (Length, -@@ -3290,15 +3385,16 @@ AcpiDmDumpPmtt ( +@@ -3290,15 +3384,16 @@ AcpiDmDumpPmtt ( DimmSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, MemSubTable, DomainOffset);
@@ -4147,7 +4407,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3318,7 +3414,7 @@ AcpiDmDumpPmtt ( +@@ -3318,7 +3413,7 @@ AcpiDmDumpPmtt (
Status = AcpiDmDumpTable (Length, Offset + MemOffset + DimmOffset, DimmSubTable, @@ -4156,7 +4416,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3326,23 +3422,22 @@ AcpiDmDumpPmtt ( +@@ -3326,23 +3421,22 @@ AcpiDmDumpPmtt (
/* Point to next DIMM subtable */
@@ -4186,7 +4446,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } }
-@@ -3498,6 +3593,8 @@ AcpiDmDumpS3pt ( +@@ -3498,6 +3592,8 @@ AcpiDmDumpS3pt ( ACPI_FPDT_HEADER *SubTable; ACPI_DMTABLE_INFO *InfoTable; ACPI_TABLE_S3PT *S3ptTable = ACPI_CAST_PTR (ACPI_TABLE_S3PT, Tables); @@ -4195,7 +4455,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c
/* Main table */ -@@ -3508,20 +3605,22 @@ AcpiDmDumpS3pt ( +@@ -3508,20 +3604,22 @@ AcpiDmDumpS3pt ( return 0; }
@@ -4221,7 +4481,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_S3PT_TYPE_RESUME:
-@@ -3536,7 +3635,7 @@ AcpiDmDumpS3pt ( +@@ -3536,7 +3634,7 @@ AcpiDmDumpS3pt ( default:
AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n", @@ -4230,7 +4490,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c
/* Attempt to continue */
-@@ -3549,7 +3648,7 @@ AcpiDmDumpS3pt ( +@@ -3549,7 +3647,7 @@ AcpiDmDumpS3pt ( }
AcpiOsPrintf ("\n"); @@ -4239,7 +4499,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { -@@ -3583,9 +3682,11 @@ void +@@ -3583,9 +3681,11 @@ void AcpiDmDumpSlic ( ACPI_TABLE_HEADER *Table) { @@ -4253,7 +4513,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c }
-@@ -3608,14 +3709,17 @@ AcpiDmDumpSlit ( +@@ -3608,14 +3708,17 @@ AcpiDmDumpSlit ( ACPI_STATUS Status; UINT32 Offset; UINT8 *Row; @@ -4273,7 +4533,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3623,7 +3727,8 @@ AcpiDmDumpSlit ( +@@ -3623,7 +3726,8 @@ AcpiDmDumpSlit (
/* Display the Locality NxN Matrix */
@@ -4283,7 +4543,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]); Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry;
-@@ -3636,7 +3741,7 @@ AcpiDmDumpSlit ( +@@ -3636,7 +3740,7 @@ AcpiDmDumpSlit ( { /* Check for beyond EOT */
@@ -4292,7 +4552,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ( "\n**** Not enough room in table for all localities\n"); -@@ -3688,11 +3793,13 @@ AcpiDmDumpSrat ( +@@ -3688,11 +3792,13 @@ AcpiDmDumpSrat ( UINT32 Offset = sizeof (ACPI_TABLE_SRAT); ACPI_SUBTABLE_HEADER *SubTable; ACPI_DMTABLE_INFO *InfoTable; @@ -4307,7 +4567,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3701,12 +3808,12 @@ AcpiDmDumpSrat ( +@@ -3701,12 +3807,12 @@ AcpiDmDumpSrat ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset); @@ -4322,7 +4582,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c SubTable->Length, AcpiDmTableInfoSratHdr); if (ACPI_FAILURE (Status)) { -@@ -3755,7 +3862,7 @@ AcpiDmDumpSrat ( +@@ -3755,7 +3861,7 @@ AcpiDmDumpSrat ( }
AcpiOsPrintf ("\n"); @@ -4331,7 +4591,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { -@@ -3792,13 +3899,14 @@ AcpiDmDumpStao ( +@@ -3792,13 +3898,14 @@ AcpiDmDumpStao ( { ACPI_STATUS Status; char *Namepath; @@ -4347,7 +4607,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoStao); if (ACPI_FAILURE (Status)) { -@@ -3807,7 +3915,7 @@ AcpiDmDumpStao ( +@@ -3807,7 +3914,7 @@ AcpiDmDumpStao (
/* The rest of the table consists of Namepath strings */
@@ -4356,7 +4616,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { Namepath = ACPI_ADD_PTR (char, Table, Offset); StringLength = strlen (Namepath) + 1; -@@ -3849,11 +3957,14 @@ AcpiDmDumpTcpa ( +@@ -3849,11 +3956,14 @@ AcpiDmDumpTcpa ( ACPI_TABLE_TCPA_HDR *SubTable = ACPI_ADD_PTR ( ACPI_TABLE_TCPA_HDR, Table, Offset); ACPI_STATUS Status; @@ -4372,7 +4632,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c 0, AcpiDmTableInfoTcpaHdr); if (ACPI_FAILURE (Status)) { -@@ -3864,18 +3975,19 @@ AcpiDmDumpTcpa ( +@@ -3864,18 +3974,19 @@ AcpiDmDumpTcpa ( * Examine the PlatformClass field to determine the table type. * Either a client or server table. Only one. */ @@ -4397,7 +4657,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c break;
default: -@@ -3912,11 +4024,13 @@ AcpiDmDumpVrtc ( +@@ -3912,11 +4023,13 @@ AcpiDmDumpVrtc ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_VRTC); ACPI_VRTC_ENTRY *SubTable; @@ -4412,7 +4672,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3925,12 +4039,12 @@ AcpiDmDumpVrtc ( +@@ -3925,12 +4038,12 @@ AcpiDmDumpVrtc ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset); @@ -4427,7 +4687,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0); if (ACPI_FAILURE (Status)) { -@@ -3965,11 +4079,13 @@ AcpiDmDumpWdat ( +@@ -3965,11 +4078,13 @@ AcpiDmDumpWdat ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_WDAT); ACPI_WDAT_ENTRY *SubTable; @@ -4442,7 +4702,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3978,12 +4094,12 @@ AcpiDmDumpWdat ( +@@ -3978,12 +4093,12 @@ AcpiDmDumpWdat ( /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, Table, Offset); @@ -4457,7 +4717,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0); if (ACPI_FAILURE (Status)) { -@@ -4018,12 +4134,13 @@ AcpiDmDumpWpbt ( +@@ -4018,12 +4133,13 @@ AcpiDmDumpWpbt ( { ACPI_STATUS Status; ACPI_TABLE_WPBT *SubTable; @@ -4472,7 +4732,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWpbt); if (ACPI_FAILURE (Status)) { -@@ -4033,10 +4150,10 @@ AcpiDmDumpWpbt ( +@@ -4033,10 +4149,10 @@ AcpiDmDumpWpbt ( /* Extract the arguments buffer length from the main table */
SubTable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table); @@ -5218,6 +5478,22 @@ Index: acpica-unix2-20170728/source/components/disassembler/dmopcode.c Info->BitOffset += Offset;
if (Info->BitOffset % 8 == 0) +@@ -942,10 +949,15 @@ AcpiDmDisassembleOneOp ( + + if (Child->Common.AmlOpcode == AML_INT_BYTELIST_OP) + { ++ /* UINT64 Tmp64; */ ++ + AcpiOsPrintf ("\n"); + + Aml = Child->Named.Data; ++ /* + Length = (UINT32) Child->Common.Value.Integer; ++ */ ++ Length = (UINT32) Child->Common.Value.Size; + + Info->Level += 1; + Info->MappingOp = Op; Index: acpica-unix2-20170728/source/components/disassembler/dmresrcl.c =================================================================== --- acpica-unix2-20170728.orig/source/components/disassembler/dmresrcl.c @@ -5562,7 +5838,7 @@ Index: acpica-unix2-20170728/source/components/disassembler/dmresrcl2.c
VendorData = ACPI_ADD_PTR (UINT8, Resource, sizeof (AML_RESOURCE_UART_SERIALBUS)); -@@ -601,15 +621,19 @@ AcpiDmI2cSerialBusDescriptor ( +@@ -601,24 +621,29 @@ AcpiDmI2cSerialBusDescriptor ( { UINT32 ResourceSourceOffset; char *DeviceName; @@ -5583,8 +5859,10 @@ Index: acpica-unix2-20170728/source/components/disassembler/dmresrcl2.c + Tmp32);
AcpiDmIndent (Level + 1); ++ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->I2cSerialBus.TypeSpecificFlags); AcpiOsPrintf ("%s, ", -@@ -617,8 +641,8 @@ AcpiDmI2cSerialBusDescriptor ( +- AcpiGbl_AmDecode [ACPI_GET_1BIT_FLAG (Resource->I2cSerialBus.TypeSpecificFlags)]); ++ AcpiGbl_AmDecode [ACPI_GET_1BIT_FLAG (Tmp16)]);
/* ResourceSource is a required field */
@@ -5848,7 +6126,39 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c =================================================================== --- acpica-unix2-20170728.orig/source/components/tables/tbfadt.c +++ acpica-unix2-20170728/source/components/tables/tbfadt.c -@@ -520,6 +520,8 @@ AcpiTbConvertFadt ( +@@ -424,18 +424,20 @@ AcpiTbCreateLocalFadt ( + ACPI_TABLE_HEADER *Table, + UINT32 Length) + { ++ UINT32 Tmp32; + + /* + * Check if the FADT is larger than the largest table that we expect + * (typically the current ACPI specification version). If so, truncate + * the table, and issue a warning. + */ +- if (Length > sizeof (ACPI_TABLE_FADT)) ++ ACPI_MOVE_32_TO_32(&Tmp32, &Length); ++ if (Tmp32 > sizeof (ACPI_TABLE_FADT)) + { + ACPI_BIOS_WARNING ((AE_INFO, + "FADT (revision %u) is longer than %s length, " + "truncating length %u to %u", +- Table->Revision, ACPI_FADT_CONFORMANCE, Length, ++ Table->Revision, ACPI_FADT_CONFORMANCE, Tmp32, + (UINT32) sizeof (ACPI_TABLE_FADT))); + } + +@@ -446,7 +448,7 @@ AcpiTbCreateLocalFadt ( + /* Copy the original FADT, up to sizeof (ACPI_TABLE_FADT) */ + + memcpy (&AcpiGbl_FADT, Table, +- ACPI_MIN (Length, sizeof (ACPI_TABLE_FADT))); ++ ACPI_MIN (Tmp32, sizeof (ACPI_TABLE_FADT))); + + /* Take a copy of the Hardware Reduced flag */ + +@@ -520,6 +522,8 @@ AcpiTbConvertFadt ( UINT8 Length; UINT8 Flags; UINT32 i; @@ -5857,7 +6167,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c
/* -@@ -533,7 +535,8 @@ AcpiTbConvertFadt ( +@@ -533,7 +537,8 @@ AcpiTbConvertFadt ( * Note: The FADT revision value is unreliable. Only the length can be * trusted. */ @@ -5867,7 +6177,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c { AcpiGbl_FADT.PreferredProfile = 0; AcpiGbl_FADT.PstateControl = 0; -@@ -546,14 +549,15 @@ AcpiTbConvertFadt ( +@@ -546,14 +551,15 @@ AcpiTbConvertFadt ( * current FADT version as defined by the ACPI specification. * Thus, we will have a common FADT internally. */ @@ -5886,7 +6196,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c
/* If Hardware Reduced flag is set, we are all done */
-@@ -614,7 +618,9 @@ AcpiTbConvertFadt ( +@@ -614,7 +620,9 @@ AcpiTbConvertFadt ( { if (Address64->Address) { @@ -5897,7 +6207,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c { /* Address mismatch */
-@@ -655,9 +661,11 @@ AcpiTbConvertFadt ( +@@ -655,9 +663,11 @@ AcpiTbConvertFadt ( */ if (!Address64->Address || AcpiGbl_Use32BitFadtAddresses) { @@ -5910,7 +6220,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c } }
-@@ -780,10 +788,14 @@ AcpiTbSetupFadtRegisters ( +@@ -780,10 +790,14 @@ AcpiTbSetupFadtRegisters (
if (Source64->Address) { @@ -6247,3 +6557,36 @@ Index: acpica-unix2-20170728/source/tools/acpiexec/aetables.c }
return (AE_OK); +Index: acpica-unix2-20170728/source/common/dmswitch.c +=================================================================== +--- acpica-unix2-20170728.orig/source/common/dmswitch.c ++++ acpica-unix2-20170728/source/common/dmswitch.c +@@ -88,13 +88,15 @@ AcpiDmProcessSwitch ( + ACPI_PARSE_OBJECT_LIST *Current; + ACPI_PARSE_OBJECT_LIST *Previous; + BOOLEAN FoundTemp = FALSE; ++ UINT32 Tmp32; + + + switch (Op->Common.AmlOpcode) + { + case AML_NAME_OP: + +- Temp = (char *) (&Op->Named.Name); ++ ACPI_MOVE_32_TO_32(&Tmp32, &Op->Named.Name); ++ Temp = (char *) (&Tmp32); + + if (!strncmp(Temp, "_T_", 3)) + { +@@ -138,7 +140,10 @@ AcpiDmProcessSwitch ( + { + /* Note, if we get here Temp is not NULL */ + +- if (!strncmp(Temp, (char *) (&Current->Op->Named.Name), 4)) ++ ACPI_MOVE_32_TO_32(&Tmp32, &Current->Op->Named.Name); ++ ++ /* if (!strncmp(Temp, (char *) (&Current->Op->Named.Name), 4)) */ ++ if (!strncmp(Temp, (char *) &Tmp32, 4)) + { + /* Match found. Ignore disassembly */ + diff --git a/int-format.patch b/int-format.patch index a0ae2ee..5618c91 100644 --- a/int-format.patch +++ b/int-format.patch @@ -275,7 +275,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c RegisterName, Address32, ACPI_FORMAT_UINT64 (Address64), AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
-@@ -626,7 +626,7 @@ AcpiTbConvertFadt ( +@@ -628,7 +628,7 @@ AcpiTbConvertFadt (
ACPI_BIOS_WARNING ((AE_INFO, "32/64X address mismatch in FADT/%s: " diff --git a/ppc64le.patch b/ppc64le.patch index 24c8edc..d2fa669 100644 --- a/ppc64le.patch +++ b/ppc64le.patch @@ -6,7 +6,7 @@ Index: acpica-unix2-20170728/source/include/platform/aclinux.h #define __cdecl #endif
-+#if defined(__BIG_ENDIAN__) ++#if defined(__BIG_ENDIAN) #if defined(__PPC64__) || defined(__s390x__) #define ACPI_BIG_ENDIAN #endif
arch-excludes@lists.fedoraproject.org