From c88a2bebac3054667c7a062f6a6328163d1710de Mon Sep 17 00:00:00 2001 From: Al Stone Date: Aug 19 2017 01:01:16 +0000 Subject: Clean up unused patch Signed-off-by: Al Stone --- 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);