Al Stone 6061af
Fixup the compiler/disassembler to support big-endian.
Al Stone 6061af
Al Stone 6061af
Signed-off-by: Al Stone <ahs3@redhat.com>
Al Stone 6061af
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/common/acfileio.c acpica-unix2-20160930-s390/source/common/acfileio.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/common/acfileio.c	2016-09-30 10:43:55.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/common/acfileio.c	2016-10-28 14:25:41.845397957 -0600
Al Stone 3df7a9
@@ -241,6 +241,7 @@
Al Stone 3df7a9
     ACPI_TABLE_HEADER       *Table;
Al Stone 3df7a9
     INT32                   Count;
Al Stone 3df7a9
     long                    TableOffset;
Al Stone 3df7a9
+    UINT32		    TableLen;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     *ReturnTable = NULL;
Al Stone 3df7a9
@@ -281,7 +282,8 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Allocate a buffer for the entire table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Table = AcpiOsAllocate ((ACPI_SIZE) TableHeader.Length);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&TableLen, &TableHeader.Length);
Al Stone 3df7a9
+    Table = AcpiOsAllocate ((ACPI_SIZE) TableLen);
Al Stone 3df7a9
     if (!Table)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return (AE_NO_MEMORY);
Al Stone 3df7a9
@@ -291,8 +293,8 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     fseek (File, TableOffset, SEEK_SET);
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Count = fread (Table, 1, TableHeader.Length, File);
Al Stone 3df7a9
-    if (Count != (INT32) TableHeader.Length)
Al Stone 3df7a9
+    Count = fread (Table, 1, TableLen, File);
Al Stone 3df7a9
+    if (Count != (INT32) TableLen)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         Status = AE_ERROR;
Al Stone 3df7a9
         goto ErrorExit;
Al Stone 3df7a9
@@ -300,7 +302,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Validate the checksum (just issue a warning) */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiTbVerifyChecksum (Table, TableHeader.Length);
Al Stone 3df7a9
+    Status = AcpiTbVerifyChecksum (Table, TableLen);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         Status = AcCheckTextModeCorruption (Table);
Al Stone 3df7a9
@@ -392,6 +394,7 @@
Al Stone 3df7a9
     ACPI_SIZE               Actual;
Al Stone 3df7a9
     long                    OriginalOffset;
Al Stone 3df7a9
     UINT32                  FileSize;
Al Stone 3df7a9
+    UINT32                  TableLength;
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -423,11 +426,12 @@
Al Stone 3df7a9
     /* Validate table length against bytes remaining in the file */
Al Stone 3df7a9
 
Al Stone 3df7a9
     FileSize = CmGetFileSize (File);
Al Stone 3df7a9
-    if (TableHeader.Length > (UINT32) (FileSize - TableOffset))
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&TableLength, &TableHeader.Length);
Al Stone 3df7a9
+    if (TableLength > (UINT32) (FileSize - TableOffset))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         fprintf (stderr, "Table [%4.4s] is too long for file - "
Al Stone 3df7a9
             "needs: 0x%.2X, remaining in file: 0x%.2X\n",
Al Stone 3df7a9
-            TableHeader.Signature, TableHeader.Length,
Al Stone 3df7a9
+            TableHeader.Signature, TableLength,
Al Stone 3df7a9
             (UINT32) (FileSize - TableOffset));
Al Stone 3df7a9
         return (AE_BAD_HEADER);
Al Stone 3df7a9
     }
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/common/ahpredef.c acpica-unix2-20160930-s390/source/common/ahpredef.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/common/ahpredef.c	2016-09-30 10:43:56.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/common/ahpredef.c	2016-10-28 14:25:41.844397962 -0600
Al Stone 3df7a9
@@ -358,7 +358,7 @@
Al Stone 3df7a9
     char                        *Nameseg)
Al Stone 3df7a9
 {
Al Stone 3df7a9
     const AH_PREDEFINED_NAME    *Info;
Al Stone 3df7a9
-
Al Stone 3df7a9
+  
Al Stone 3df7a9
 
Al Stone 3df7a9
     for (Info = AslPredefinedInfo; Info->Name; Info++)
Al Stone 3df7a9
     {
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/common/dmtable.c acpica-unix2-20160930-s390/source/common/dmtable.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/common/dmtable.c	2016-09-30 10:43:56.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/common/dmtable.c	2016-10-28 14:25:41.840397982 -0600
Al Stone 3df7a9
@@ -499,7 +499,7 @@
Al Stone 3df7a9
      */
Al Stone 3df7a9
     if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FACS))
Al Stone 3df7a9
     {
Al Stone 3df7a9
-        Length = Table->Length;
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFacs);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -513,13 +513,14 @@
Al Stone 3df7a9
     else if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_S3PT))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         Length = AcpiDmDumpS3pt (Table);
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     }
Al Stone 3df7a9
     else
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /*
Al Stone 3df7a9
          * All other tables must use the common ACPI table header, dump it now
Al Stone 3df7a9
          */
Al Stone 3df7a9
-        Length = Table->Length;
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHeader);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -730,6 +731,7 @@
Al Stone 3df7a9
     BOOLEAN                 LastOutputBlankLine = FALSE;
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     char                    RepairedName[8];
Al Stone 3df7a9
+    UINT16		    Val16;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     if (!Info)
Al Stone 3df7a9
@@ -1097,8 +1099,9 @@
Al Stone 3df7a9
             /* Checksum, display and validate */
Al Stone 3df7a9
 
Al Stone 3df7a9
             AcpiOsPrintf ("%2.2X", *Target);
Al Stone 3df7a9
-            Temp8 = AcpiDmGenerateChecksum (Table,
Al Stone 3df7a9
-                ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length,
Al Stone 3df7a9
+	    ACPI_MOVE_32_TO_32(&Temp32,
Al Stone 3df7a9
+			&ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length);
Al Stone 3df7a9
+            Temp8 = AcpiDmGenerateChecksum (Table, Temp32,
Al Stone 3df7a9
                 ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum);
Al Stone 3df7a9
 
Al Stone 3df7a9
             if (Temp8 != ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum)
Al Stone 3df7a9
@@ -1163,14 +1166,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* DMAR subtable types */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            Temp16 = ACPI_GET16 (Target);
Al Stone 3df7a9
+            Val16 = ACPI_GET16 (Target);
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&Temp16, &Val16);
Al Stone 3df7a9
             if (Temp16 > ACPI_DMAR_TYPE_RESERVED)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 Temp16 = ACPI_DMAR_TYPE_RESERVED;
Al Stone 3df7a9
             }
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
Al Stone 3df7a9
-                AcpiDmDmarSubnames[Temp16]);
Al Stone 3df7a9
+            AcpiOsPrintf (UINT16_FORMAT, Temp16, AcpiDmDmarSubnames[Temp16]);
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         case ACPI_DMT_DMAR_SCOPE:
Al Stone 3df7a9
@@ -1261,14 +1264,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* HEST subtable types */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            Temp16 = ACPI_GET16 (Target);
Al Stone 3df7a9
+            Val16 = ACPI_GET16 (Target);
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&Temp16, &Val16);
Al Stone 3df7a9
             if (Temp16 > ACPI_HEST_TYPE_RESERVED)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 Temp16 = ACPI_HEST_TYPE_RESERVED;
Al Stone 3df7a9
             }
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
Al Stone 3df7a9
-                AcpiDmHestSubnames[Temp16]);
Al Stone 3df7a9
+            AcpiOsPrintf (UINT16_FORMAT, Temp16, AcpiDmHestSubnames[Temp16]);
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         case ACPI_DMT_HESTNTFY:
Al Stone 3df7a9
@@ -1334,13 +1337,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* NFIT subtable types */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            Temp16 = ACPI_GET16 (Target);
Al Stone 3df7a9
+            Val16 = ACPI_GET16 (Target);
Al Stone 3df7a9
+            ACPI_MOVE_16_TO_16(&Temp16, &Val16);
Al Stone 3df7a9
             if (Temp16 > ACPI_NFIT_TYPE_RESERVED)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 Temp16 = ACPI_NFIT_TYPE_RESERVED;
Al Stone 3df7a9
             }
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
Al Stone 3df7a9
+            AcpiOsPrintf (UINT16_FORMAT, Temp16,
Al Stone 3df7a9
                 AcpiDmNfitSubnames[Temp16]);
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/common/dmtables.c acpica-unix2-20160930-s390/source/common/dmtables.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/common/dmtables.c	2016-09-30 10:43:56.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/common/dmtables.c	2016-10-28 14:25:41.844397962 -0600
Al Stone 3df7a9
@@ -140,7 +140,9 @@
Al Stone 3df7a9
     ACPI_TABLE_HEADER       *Table)
Al Stone 3df7a9
 {
Al Stone 3df7a9
     UINT8                   Checksum;
Al Stone 3df7a9
-
Al Stone 3df7a9
+    UINT32		    TableLen;
Al Stone 3df7a9
+    UINT32		    OemRev;
Al Stone 3df7a9
+    UINT32		    CompilerRev;
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Reset globals for External statements */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -152,9 +154,10 @@
Al Stone 3df7a9
      */
Al Stone 3df7a9
     AdDisassemblerHeader (Filename, ACPI_IS_AML_TABLE);
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&TableLen, &Table->Length);
Al Stone 3df7a9
     AcpiOsPrintf (" * Original Table Header:\n");
Al Stone 3df7a9
     AcpiOsPrintf (" *     Signature        \"%4.4s\"\n",    Table->Signature);
Al Stone 3df7a9
-    AcpiOsPrintf (" *     Length           0x%8.8X (%u)\n", Table->Length, Table->Length);
Al Stone 3df7a9
+    AcpiOsPrintf (" *     Length           0x%8.8X (%u)\n", TableLen, TableLen);
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Print and validate the revision */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -186,7 +189,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiOsPrintf ("\n *     Checksum         0x%2.2X",        Table->Checksum);
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length);
Al Stone 3df7a9
+    Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), TableLen);
Al Stone 3df7a9
     if (Checksum)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X",
Al Stone 3df7a9
@@ -196,9 +199,11 @@
Al Stone 3df7a9
     AcpiOsPrintf ("\n");
Al Stone 3df7a9
     AcpiOsPrintf (" *     OEM ID           \"%.6s\"\n",     Table->OemId);
Al Stone 3df7a9
     AcpiOsPrintf (" *     OEM Table ID     \"%.8s\"\n",     Table->OemTableId);
Al Stone 3df7a9
-    AcpiOsPrintf (" *     OEM Revision     0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&OemRev, &Table->OemRevision);
Al Stone 3df7a9
+    AcpiOsPrintf (" *     OEM Revision     0x%8.8X (%u)\n", OemRev, OemRev);
Al Stone 3df7a9
     AcpiOsPrintf (" *     Compiler ID      \"%.4s\"\n",     Table->AslCompilerId);
Al Stone 3df7a9
-    AcpiOsPrintf (" *     Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&CompilerRev, &Table->AslCompilerRevision);
Al Stone 3df7a9
+    AcpiOsPrintf (" *     Compiler Version 0x%8.8X (%u)\n", CompilerRev, CompilerRev);
Al Stone 3df7a9
     AcpiOsPrintf (" */\n");
Al Stone 3df7a9
 
Al Stone 3df7a9
     /*
Al Stone 3df7a9
@@ -211,7 +216,7 @@
Al Stone 3df7a9
     AcpiOsPrintf (
Al Stone 3df7a9
         "DefinitionBlock (\"\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
Al Stone 3df7a9
         Table->Signature, Table->Revision,
Al Stone 3df7a9
-        Table->OemId, Table->OemTableId, Table->OemRevision);
Al Stone 3df7a9
+        Table->OemId, Table->OemTableId, OemRev);
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -386,7 +391,8 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature);
Al Stone 3df7a9
 
Al Stone 3df7a9
-    AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&AmlLength, &Table->Length);
Al Stone 3df7a9
+    AmlLength -= sizeof (ACPI_TABLE_HEADER);
Al Stone 3df7a9
     AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER));
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Create the root object */
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/common/dmtbdump.c acpica-unix2-20160930-s390/source/common/dmtbdump.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/common/dmtbdump.c	2016-09-30 10:43:56.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/common/dmtbdump.c	2016-10-28 14:25:41.841397977 -0600
Al Stone 3df7a9
@@ -296,6 +296,8 @@
Al Stone 3df7a9
     UINT32                  Entries;
Al Stone 3df7a9
     UINT32                  Offset;
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
+    UINT32		    Address;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Point to start of table pointer array */
Al Stone 3df7a9
@@ -305,12 +307,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* RSDT uses 32-bit pointers */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Entries = (Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
Al Stone 3df7a9
 
Al Stone 3df7a9
     for (i = 0; i < Entries; i++)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiDmLineHeader2 (Offset, sizeof (UINT32), "ACPI Table Address", i);
Al Stone 3df7a9
-        AcpiOsPrintf ("%8.8X\n", Array[i]);
Al Stone 3df7a9
+	ACPI_MOVE_32_TO_32(&Address, &Array[i]);
Al Stone 3df7a9
+        AcpiOsPrintf ("%8.8X\n", Address);
Al Stone 3df7a9
         Offset += sizeof (UINT32);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
@@ -336,6 +340,8 @@
Al Stone 3df7a9
     UINT32                  Entries;
Al Stone 3df7a9
     UINT32                  Offset;
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
+    UINT64		    Address;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Point to start of table pointer array */
Al Stone 3df7a9
@@ -345,12 +351,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* XSDT uses 64-bit pointers */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Entries = (Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
Al Stone 3df7a9
 
Al Stone 3df7a9
     for (i = 0; i < Entries; i++)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
Al Stone 3df7a9
-        AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Array[i]));
Al Stone 3df7a9
+	ACPI_MOVE_64_TO_64(&Address, &Array[i]);
Al Stone 3df7a9
+        AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Address));
Al Stone 3df7a9
         Offset += sizeof (UINT64);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
@@ -384,6 +392,7 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT8                   FadtRevision;
Al Stone 3df7a9
     UINT32                  ExpectedLength;
Al Stone 3df7a9
+    UINT32                  ActualLength;
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -400,6 +409,7 @@
Al Stone 3df7a9
         return;
Al Stone 3df7a9
     }
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&ActualLength, &Table->Length);
Al Stone 3df7a9
     if (FadtRevision > ACPI_FADT_MAX_VERSION)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiOsPrintf ("// ACPI Warning: Revision %u is not fully supported, "
Al Stone 3df7a9
@@ -409,12 +419,12 @@
Al Stone 3df7a9
     else
Al Stone 3df7a9
     {
Al Stone 3df7a9
         ExpectedLength = FadtRevisionLength[FadtRevision];
Al Stone 3df7a9
-        if (Table->Length != ExpectedLength)
Al Stone 3df7a9
+        if (ActualLength != ExpectedLength)
Al Stone 3df7a9
         {
Al Stone 3df7a9
             AcpiOsPrintf (
Al Stone 3df7a9
                 "// ACPI Warning: Input FADT revision %X does not match "
Al Stone 3df7a9
                 "expected length: found 0x%X expected 0x%X\n",
Al Stone 3df7a9
-                FadtRevision, Table->Length, ExpectedLength);
Al Stone 3df7a9
+                FadtRevision, ActualLength, ExpectedLength);
Al Stone 3df7a9
         }
Al Stone 3df7a9
     }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -432,14 +442,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Dump the fields specific to FADT revision[i] */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (ActualLength, 0, Table, 0,
Al Stone 3df7a9
             FadtRevisionInfo[i]);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
-        if (Table->Length <= FadtRevisionLength[i])
Al Stone 3df7a9
+        if (ActualLength <= FadtRevisionLength[i])
Al Stone 3df7a9
         {
Al Stone 3df7a9
             break;  /* End of table */
Al Stone 3df7a9
         }
Al Stone 3df7a9
@@ -447,7 +457,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Build a local FADT to test some FADT values */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    AcpiTbCreateLocalFadt (Table, Table->Length);
Al Stone 3df7a9
+    AcpiTbCreateLocalFadt (Table, ActualLength);
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -478,17 +488,21 @@
Al Stone 3df7a9
     UINT32                  DataOffset = 0;
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
     UINT8                   Type;
Al Stone 3df7a9
+    UINT32		    Len;
Al Stone 3df7a9
+    UINT16		    SubLen;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* No main table, only subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Len, &Table->Length);
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Len)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Header.Length, AcpiDmTableInfoAsfHdr);
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&SubLen, &SubTable->Header.Length);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Len, Offset, SubTable,
Al Stone 3df7a9
+            SubLen, AcpiDmTableInfoAsfHdr);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -545,8 +559,7 @@
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Header.Length, InfoTable);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Len, Offset, SubTable, SubLen, InfoTable);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -562,7 +575,7 @@
Al Stone 3df7a9
             for (i = 0; i < DataCount; i++)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 AcpiOsPrintf ("\n");
Al Stone 3df7a9
-                Status = AcpiDmDumpTable (Table->Length, DataOffset,
Al Stone 3df7a9
+                Status = AcpiDmDumpTable (Len, DataOffset,
Al Stone 3df7a9
                     DataTable, DataLength, DataInfoTable);
Al Stone 3df7a9
                 if (ACPI_FAILURE (Status))
Al Stone 3df7a9
                 {
Al Stone 3df7a9
@@ -608,15 +621,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Point to next subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        if (!SubTable->Header.Length)
Al Stone 3df7a9
+        if (!SubLen)
Al Stone 3df7a9
         {
Al Stone 3df7a9
             AcpiOsPrintf ("Invalid zero subtable header length\n");
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset += SubTable->Header.Length;
Al Stone 3df7a9
-        SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable,
Al Stone 3df7a9
-            SubTable->Header.Length);
Al Stone 3df7a9
+        Offset += SubLen;
Al Stone 3df7a9
+        SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, SubLen);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -640,12 +652,13 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_CPEP_POLLING       *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_CPEP);
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoCpep);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -655,7 +668,7 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
@@ -695,7 +708,10 @@
Al Stone 3df7a9
     ACPI_CSRT_GROUP         *SubTable;
Al Stone 3df7a9
     ACPI_CSRT_SHARED_INFO   *SharedInfoTable;
Al Stone 3df7a9
     ACPI_CSRT_DESCRIPTOR    *SubSubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
+    UINT32                  SubLength;
Al Stone 3df7a9
+    UINT32                  SubSubLength;
Al Stone 3df7a9
+    UINT32                  SharedInfoLength;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_CSRT);
Al Stone 3df7a9
     UINT32                  SubOffset;
Al Stone 3df7a9
     UINT32                  SubSubOffset;
Al Stone 3df7a9
@@ -706,14 +722,16 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Subtables (Resource Groups) */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Resource group subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&SubLength, &SubTable->Length);
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, AcpiDmTableInfoCsrt0);
Al Stone 3df7a9
+            SubLength, AcpiDmTableInfoCsrt0);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -733,19 +751,20 @@
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
-        SubOffset += SubTable->SharedInfoLength;
Al Stone 3df7a9
+	ACPI_MOVE_32_TO_32(&SharedInfoLength, &SubTable->SharedInfoLength);
Al Stone 3df7a9
+        SubOffset += SharedInfoLength;
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Sub-Subtables (Resource Descriptors) */
Al Stone 3df7a9
 
Al Stone 3df7a9
         SubSubTable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, Table,
Al Stone 3df7a9
             Offset + SubOffset);
Al Stone 3df7a9
 
Al Stone 3df7a9
-        while ((SubOffset < SubTable->Length) &&
Al Stone 3df7a9
-              ((Offset + SubOffset) < Table->Length))
Al Stone 3df7a9
+        while ((SubOffset < SubLength) && ((Offset + SubOffset) < Length))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             AcpiOsPrintf ("\n");
Al Stone 3df7a9
+	    ACPI_MOVE_32_TO_32(&SubSubLength, &SubSubTable->Length);
Al Stone 3df7a9
             Status = AcpiDmDumpTable (Length, Offset + SubOffset, SubSubTable,
Al Stone 3df7a9
-                SubSubTable->Length, AcpiDmTableInfoCsrt2);
Al Stone 3df7a9
+                SubSubLength, AcpiDmTableInfoCsrt2);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -755,7 +774,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Resource-specific info buffer */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            InfoLength = SubSubTable->Length - SubSubOffset;
Al Stone 3df7a9
+            InfoLength = SubSubLength - SubSubOffset;
Al Stone 3df7a9
             if (InfoLength)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 Status = AcpiDmDumpTable (Length,
Al Stone 3df7a9
@@ -770,16 +789,15 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Point to next sub-subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            SubOffset += SubSubTable->Length;
Al Stone 3df7a9
+            SubOffset += SubSubLength;
Al Stone 3df7a9
             SubSubTable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, SubSubTable,
Al Stone 3df7a9
-                SubSubTable->Length);
Al Stone 3df7a9
+                SubSubLength);
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Point to next subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset += SubTable->Length;
Al Stone 3df7a9
-        SubTable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, SubTable,
Al Stone 3df7a9
-            SubTable->Length);
Al Stone 3df7a9
+        Offset += SubLength;
Al Stone 3df7a9
+        SubTable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, SubTable, SubLength);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -803,16 +821,20 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_DBG2_DEVICE        *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
+    UINT16                  SubLength;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_DBG2);
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
     UINT32                  ArrayOffset;
Al Stone 3df7a9
     UINT32                  AbsoluteOffset;
Al Stone 3df7a9
     UINT8                   *Array;
Al Stone 3df7a9
+    UINT16		    Tmp16;
Al Stone 3df7a9
+    UINT16		    AlsoTmp16;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDbg2);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -822,11 +844,12 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
+        ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length);
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, AcpiDmTableInfoDbg2Device);
Al Stone 3df7a9
+            SubLength, AcpiDmTableInfoDbg2Device);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -836,13 +859,13 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         for (i = 0; i < SubTable->RegisterCount; i++)
Al Stone 3df7a9
         {
Al Stone 3df7a9
-            ArrayOffset = SubTable->BaseAddressOffset +
Al Stone 3df7a9
-                (sizeof (ACPI_GENERIC_ADDRESS) * i);
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&Tmp16, &SubTable->BaseAddressOffset);
Al Stone 3df7a9
+            ArrayOffset = Tmp16 + (sizeof (ACPI_GENERIC_ADDRESS) * i);
Al Stone 3df7a9
             AbsoluteOffset = Offset + ArrayOffset;
Al Stone 3df7a9
             Array = (UINT8 *) SubTable + ArrayOffset;
Al Stone 3df7a9
 
Al Stone 3df7a9
             Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
Al Stone 3df7a9
-                SubTable->Length, AcpiDmTableInfoDbg2Addr);
Al Stone 3df7a9
+                SubLength, AcpiDmTableInfoDbg2Addr);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -853,13 +876,13 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         for (i = 0; i < SubTable->RegisterCount; i++)
Al Stone 3df7a9
         {
Al Stone 3df7a9
-            ArrayOffset = SubTable->AddressSizeOffset +
Al Stone 3df7a9
-                (sizeof (UINT32) * i);
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&Tmp16, &SubTable->AddressSizeOffset);
Al Stone 3df7a9
+            ArrayOffset = Tmp16 + (sizeof (UINT32) * i);
Al Stone 3df7a9
             AbsoluteOffset = Offset + ArrayOffset;
Al Stone 3df7a9
             Array = (UINT8 *) SubTable + ArrayOffset;
Al Stone 3df7a9
 
Al Stone 3df7a9
             Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
Al Stone 3df7a9
-                SubTable->Length, AcpiDmTableInfoDbg2Size);
Al Stone 3df7a9
+                SubLength, AcpiDmTableInfoDbg2Size);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -869,12 +892,13 @@
Al Stone 3df7a9
         /* Dump the Namestring (required) */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        ArrayOffset = SubTable->NamepathOffset;
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&Tmp16, &SubTable->NamepathOffset);
Al Stone 3df7a9
+        ArrayOffset = Tmp16;
Al Stone 3df7a9
         AbsoluteOffset = Offset + ArrayOffset;
Al Stone 3df7a9
         Array = (UINT8 *) SubTable + ArrayOffset;
Al Stone 3df7a9
 
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
Al Stone 3df7a9
-            SubTable->Length, AcpiDmTableInfoDbg2Name);
Al Stone 3df7a9
+            SubLength, AcpiDmTableInfoDbg2Name);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -884,9 +908,10 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         if (SubTable->OemDataOffset)
Al Stone 3df7a9
         {
Al Stone 3df7a9
-            Status = AcpiDmDumpTable (Length, Offset + SubTable->OemDataOffset,
Al Stone 3df7a9
-                Table, SubTable->OemDataLength,
Al Stone 3df7a9
-                AcpiDmTableInfoDbg2OemData);
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&Tmp16, &SubTable->OemDataOffset);
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&AlsoTmp16, &SubTable->OemDataLength);
Al Stone 3df7a9
+            Status = AcpiDmDumpTable (Length, Offset + Tmp16,
Al Stone 3df7a9
+                Table, AlsoTmp16, AcpiDmTableInfoDbg2OemData);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -895,9 +920,9 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Point to next subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset += SubTable->Length;
Al Stone 3df7a9
+        Offset += SubLength;
Al Stone 3df7a9
         SubTable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, SubTable,
Al Stone 3df7a9
-            SubTable->Length);
Al Stone 3df7a9
+            SubLength);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -921,17 +946,20 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_DMAR_HEADER        *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
+    UINT16                  SubLength;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_DMAR);
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
     ACPI_DMAR_DEVICE_SCOPE  *ScopeTable;
Al Stone 3df7a9
     UINT32                  ScopeOffset;
Al Stone 3df7a9
     UINT8                   *PciPath;
Al Stone 3df7a9
     UINT32                  PathOffset;
Al Stone 3df7a9
+    UINT16		    SubType;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDmar);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -941,13 +969,14 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length);
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, AcpiDmTableInfoDmarHdr);
Al Stone 3df7a9
+            SubLength, AcpiDmTableInfoDmarHdr);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -955,7 +984,8 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
 
Al Stone 3df7a9
-        switch (SubTable->Type)
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&SubType, &SubTable->Type);
Al Stone 3df7a9
+        switch (SubType)
Al Stone 3df7a9
         {
Al Stone 3df7a9
         case ACPI_DMAR_TYPE_HARDWARE_UNIT:
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -990,12 +1020,12 @@
Al Stone 3df7a9
         default:
Al Stone 3df7a9
 
Al Stone 3df7a9
             AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n",
Al Stone 3df7a9
-                SubTable->Type);
Al Stone 3df7a9
+                SubType);
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, InfoTable);
Al Stone 3df7a9
+            SubLength, InfoTable);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -1004,8 +1034,8 @@
Al Stone 3df7a9
         /*
Al Stone 3df7a9
          * Dump the optional device scope entries
Al Stone 3df7a9
          */
Al Stone 3df7a9
-        if ((SubTable->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
Al Stone 3df7a9
-            (SubTable->Type == ACPI_DMAR_TYPE_NAMESPACE))
Al Stone 3df7a9
+        if ((SubType == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
Al Stone 3df7a9
+            (SubType == ACPI_DMAR_TYPE_NAMESPACE))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             /* These types do not support device scopes */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1013,7 +1043,7 @@
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
         ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, SubTable, ScopeOffset);
Al Stone 3df7a9
-        while (ScopeOffset < SubTable->Length)
Al Stone 3df7a9
+        while (ScopeOffset < SubLength)
Al Stone 3df7a9
         {
Al Stone 3df7a9
             AcpiOsPrintf ("\n");
Al Stone 3df7a9
             Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable,
Al Stone 3df7a9
@@ -1054,9 +1084,8 @@
Al Stone 3df7a9
 NextSubtable:
Al Stone 3df7a9
         /* Point to next subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset += SubTable->Length;
Al Stone 3df7a9
-        SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable,
Al Stone 3df7a9
-            SubTable->Length);
Al Stone 3df7a9
+        Offset += SubLength;
Al Stone 3df7a9
+        SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, SubLength);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1083,12 +1112,15 @@
Al Stone 3df7a9
     ACPI_DRTM_RESOURCE_LIST *DrtmRl;
Al Stone 3df7a9
     ACPI_DRTM_DPS_ID        *DrtmDps;
Al Stone 3df7a9
     UINT32                  Count;
Al Stone 3df7a9
+    UINT32                  ValidatedCount;
Al Stone 3df7a9
+    UINT32                  ResourceCount;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
Al Stone 3df7a9
-        AcpiDmTableInfoDrtm);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDrtm);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -1102,7 +1134,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset);
Al Stone 3df7a9
     AcpiOsPrintf ("\n");
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, Offset,
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, Offset,
Al Stone 3df7a9
         DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables),
Al Stone 3df7a9
         AcpiDmTableInfoDrtm0);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1115,10 +1147,11 @@
Al Stone 3df7a9
     /* Dump Validated table addresses */
Al Stone 3df7a9
 
Al Stone 3df7a9
     Count = 0;
Al Stone 3df7a9
-    while ((Offset < Table->Length) &&
Al Stone 3df7a9
-            (DrtmVtl->ValidatedTableCount > Count))
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&ValidatedCount, &DrtmVtl->ValidatedTableCount);
Al Stone 3df7a9
+    while ((Offset < Length) &&
Al Stone 3df7a9
+            (ValidatedCount > Count))
Al Stone 3df7a9
     {
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset,
Al Stone 3df7a9
             ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64),
Al Stone 3df7a9
             AcpiDmTableInfoDrtm0a);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1134,7 +1167,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset);
Al Stone 3df7a9
     AcpiOsPrintf ("\n");
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, Offset,
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, Offset,
Al Stone 3df7a9
         DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources),
Al Stone 3df7a9
         AcpiDmTableInfoDrtm1);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1147,10 +1180,11 @@
Al Stone 3df7a9
     /* Dump the Resource List */
Al Stone 3df7a9
 
Al Stone 3df7a9
     Count = 0;
Al Stone 3df7a9
-    while ((Offset < Table->Length) &&
Al Stone 3df7a9
-           (DrtmRl->ResourceCount > Count))
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&ResourceCount, &DrtmRl->ResourceCount);
Al Stone 3df7a9
+    while ((Offset < Length) &&
Al Stone 3df7a9
+           (ResourceCount > Count))
Al Stone 3df7a9
     {
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset,
Al Stone 3df7a9
             ACPI_ADD_PTR (void, Table, Offset),
Al Stone 3df7a9
             sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1166,7 +1200,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset);
Al Stone 3df7a9
     AcpiOsPrintf ("\n");
Al Stone 3df7a9
-    (void) AcpiDmDumpTable (Table->Length, Offset,
Al Stone 3df7a9
+    (void) AcpiDmDumpTable (Length, Offset,
Al Stone 3df7a9
         DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2);
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1190,12 +1224,13 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_WHEA_HEADER        *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_EINJ);
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoEinj);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -1205,7 +1240,7 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
@@ -1243,12 +1278,13 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_WHEA_HEADER        *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_ERST);
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoErst);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -1258,7 +1294,7 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
@@ -1296,17 +1332,19 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_FPDT_HEADER        *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_FPDT);
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
+    UINT16		    Type;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* There is no main table (other than the standard ACPI header) */
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1318,7 +1356,8 @@
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
-        switch (SubTable->Type)
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&Type, &SubTable->Type);
Al Stone 3df7a9
+        switch (Type)
Al Stone 3df7a9
         {
Al Stone 3df7a9
         case ACPI_FPDT_TYPE_BOOT:
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1332,8 +1371,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         default:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n",
Al Stone 3df7a9
-                SubTable->Type);
Al Stone 3df7a9
+            AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", Type);
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Attempt to continue */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1381,16 +1419,19 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_GTDT_HEADER        *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
+    UINT16                  SubLength;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_GTDT);
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
     UINT32                  SubTableLength;
Al Stone 3df7a9
     UINT32                  GtCount;
Al Stone 3df7a9
+    UINT32                  Tmp32;
Al Stone 3df7a9
     ACPI_GTDT_TIMER_ENTRY   *GtxTable;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoGtdt);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -1400,7 +1441,7 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_GTDT_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1418,8 +1459,9 @@
Al Stone 3df7a9
         case ACPI_GTDT_TYPE_TIMER_BLOCK:
Al Stone 3df7a9
 
Al Stone 3df7a9
             SubTableLength = sizeof (ACPI_GTDT_TIMER_BLOCK);
Al Stone 3df7a9
-            GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
Al Stone 3df7a9
+            Tmp32 = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
Al Stone 3df7a9
                 SubTable))->TimerCount;
Al Stone 3df7a9
+	    ACPI_MOVE_32_TO_32(&GtCount, &Tmp32);
Al Stone 3df7a9
 
Al Stone 3df7a9
             InfoTable = AcpiDmTableInfoGtdt0;
Al Stone 3df7a9
             break;
Al Stone 3df7a9
@@ -1440,8 +1482,9 @@
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length);
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, InfoTable);
Al Stone 3df7a9
+            SubLength, InfoTable);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -1500,16 +1543,18 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_HEST_HEADER        *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_HEST);
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
     UINT32                  SubTableLength;
Al Stone 3df7a9
     UINT32                  BankCount;
Al Stone 3df7a9
     ACPI_HEST_IA_ERROR_BANK *BankTable;
Al Stone 3df7a9
+    UINT16		    SubType;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHest);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -1519,10 +1564,11 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         BankCount = 0;
Al Stone 3df7a9
-        switch (SubTable->Type)
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&SubType, &SubTable->Type);
Al Stone 3df7a9
+        switch (SubType)
Al Stone 3df7a9
         {
Al Stone 3df7a9
         case ACPI_HEST_TYPE_IA32_CHECK:
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1651,15 +1697,21 @@
Al Stone 3df7a9
     ACPI_IORT_SMMU          *IortSmmu = NULL;
Al Stone 3df7a9
     UINT32                  Offset;
Al Stone 3df7a9
     UINT32                  NodeOffset;
Al Stone 3df7a9
+    UINT16		    NodeLength;
Al Stone 3df7a9
     UINT32                  Length;
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
     char                    *String;
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
-
Al Stone 3df7a9
+    UINT32		    TableLen;
Al Stone 3df7a9
+    UINT32		    ItsCount;
Al Stone 3df7a9
+    UINT32		    MappingCount;
Al Stone 3df7a9
+    UINT32		    CtxIntCount;
Al Stone 3df7a9
+    UINT32		    PmuIntCount;
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIort);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&TableLen, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (TableLen, 0, Table, 0, AcpiDmTableInfoIort);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -1670,18 +1722,19 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Dump the OptionalPadding (optional) */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    if (Iort->NodeOffset > Offset)
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&NodeOffset, &Iort->NodeOffset);
Al Stone 3df7a9
+    if (NodeOffset > Offset)
Al Stone 3df7a9
     {
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, Table,
Al Stone 3df7a9
-            Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (TableLen, Offset, Table,
Al Stone 3df7a9
+            NodeOffset - Offset, AcpiDmTableInfoIortPad);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
     }
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Offset = Iort->NodeOffset;
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Offset, &Iort->NodeOffset);
Al Stone 3df7a9
+    while (Offset < TableLen)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1717,7 +1770,8 @@
Al Stone 3df7a9
         case ACPI_IORT_NODE_PCI_ROOT_COMPLEX:
Al Stone 3df7a9
 
Al Stone 3df7a9
             InfoTable = AcpiDmTableInfoIort2;
Al Stone 3df7a9
-            Length = IortNode->Length - NodeOffset;
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
Al Stone 3df7a9
+            Length = NodeLength - NodeOffset;
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         case ACPI_IORT_NODE_SMMU:
Al Stone 3df7a9
@@ -1730,7 +1784,8 @@
Al Stone 3df7a9
         case ACPI_IORT_NODE_SMMU_V3:
Al Stone 3df7a9
 
Al Stone 3df7a9
             InfoTable = AcpiDmTableInfoIort4;
Al Stone 3df7a9
-            Length = IortNode->Length - NodeOffset;
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
Al Stone 3df7a9
+            Length = NodeLength - NodeOffset;
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         default:
Al Stone 3df7a9
@@ -1740,7 +1795,8 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Attempt to continue */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            if (!IortNode->Length)
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
Al Stone 3df7a9
+            if (!NodeLength)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 AcpiOsPrintf ("Invalid zero length IORT node\n");
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -1751,7 +1807,7 @@
Al Stone 3df7a9
         /* Dump the node subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
Al Stone 3df7a9
             ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
Al Stone 3df7a9
             Length, InfoTable);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1771,9 +1827,10 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             if (IortItsGroup)
Al Stone 3df7a9
             {
Al Stone 3df7a9
-                for (i = 0; i < IortItsGroup->ItsCount; i++)
Al Stone 3df7a9
+	        ACPI_MOVE_32_TO_32(&ItsCount, &IortItsGroup->ItsCount);
Al Stone 3df7a9
+                for (i = 0; i < ItsCount; i++)
Al Stone 3df7a9
                 {
Al Stone 3df7a9
-                    Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
Al Stone 3df7a9
+                    Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
Al Stone 3df7a9
                         ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
Al Stone 3df7a9
                         4, AcpiDmTableInfoIort0a);
Al Stone 3df7a9
                     NodeOffset += 4;
Al Stone 3df7a9
@@ -1785,11 +1842,11 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Dump the Padding (optional) */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            if (IortNode->Length > NodeOffset)
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
Al Stone 3df7a9
+            if (NodeLength > NodeOffset)
Al Stone 3df7a9
             {
Al Stone 3df7a9
-                Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
Al Stone 3df7a9
-                    Table, IortNode->Length - NodeOffset,
Al Stone 3df7a9
-                    AcpiDmTableInfoIort1a);
Al Stone 3df7a9
+                Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
Al Stone 3df7a9
+                    Table, NodeLength - NodeOffset, AcpiDmTableInfoIort1a);
Al Stone 3df7a9
                 if (ACPI_FAILURE (Status))
Al Stone 3df7a9
                 {
Al Stone 3df7a9
                     return;
Al Stone 3df7a9
@@ -1806,8 +1863,8 @@
Al Stone 3df7a9
             if (IortSmmu)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 Length = 2 * sizeof (UINT64);
Al Stone 3df7a9
-                NodeOffset = IortSmmu->GlobalInterruptOffset;
Al Stone 3df7a9
-                Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
Al Stone 3df7a9
+                ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->GlobalInterruptOffset);
Al Stone 3df7a9
+                Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
Al Stone 3df7a9
                     ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
Al Stone 3df7a9
                     Length, AcpiDmTableInfoIort3a);
Al Stone 3df7a9
                 if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1815,10 +1872,11 @@
Al Stone 3df7a9
                     return;
Al Stone 3df7a9
                 }
Al Stone 3df7a9
 
Al Stone 3df7a9
-                NodeOffset = IortSmmu->ContextInterruptOffset;
Al Stone 3df7a9
-                for (i = 0; i < IortSmmu->ContextInterruptCount; i++)
Al Stone 3df7a9
+                ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->ContextInterruptOffset);
Al Stone 3df7a9
+                ACPI_MOVE_32_TO_32(&CtxIntCount, &IortSmmu->ContextInterruptCount);
Al Stone 3df7a9
+                for (i = 0; i < CtxIntCount; i++)
Al Stone 3df7a9
                 {
Al Stone 3df7a9
-                    Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
Al Stone 3df7a9
+                    Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
Al Stone 3df7a9
                         ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
Al Stone 3df7a9
                         8, AcpiDmTableInfoIort3b);
Al Stone 3df7a9
                     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1829,10 +1887,11 @@
Al Stone 3df7a9
                     NodeOffset += 8;
Al Stone 3df7a9
                 }
Al Stone 3df7a9
 
Al Stone 3df7a9
-                NodeOffset = IortSmmu->PmuInterruptOffset;
Al Stone 3df7a9
-                for (i = 0; i < IortSmmu->PmuInterruptCount; i++)
Al Stone 3df7a9
+                ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->PmuInterruptOffset);
Al Stone 3df7a9
+                ACPI_MOVE_32_TO_32(&PmuIntCount, &IortSmmu->PmuInterruptCount);
Al Stone 3df7a9
+                for (i = 0; i < PmuIntCount; i++)
Al Stone 3df7a9
                 {
Al Stone 3df7a9
-                    Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
Al Stone 3df7a9
+                    Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
Al Stone 3df7a9
                         ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
Al Stone 3df7a9
                         8, AcpiDmTableInfoIort3c);
Al Stone 3df7a9
                     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1852,12 +1911,13 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Dump the ID mappings */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        NodeOffset = IortNode->MappingOffset;
Al Stone 3df7a9
-        for (i = 0; i < IortNode->MappingCount; i++)
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&NodeOffset, &IortNode->MappingOffset);
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&MappingCount, &IortNode->MappingCount);
Al Stone 3df7a9
+        for (i = 0; i < MappingCount; i++)
Al Stone 3df7a9
         {
Al Stone 3df7a9
             AcpiOsPrintf ("\n");
Al Stone 3df7a9
             Length = sizeof (ACPI_IORT_ID_MAPPING);
Al Stone 3df7a9
-            Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
Al Stone 3df7a9
+            Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
Al Stone 3df7a9
                 ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
Al Stone 3df7a9
                 Length, AcpiDmTableInfoIortMap);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -1871,8 +1931,9 @@
Al Stone 3df7a9
 NextSubTable:
Al Stone 3df7a9
         /* Point to next node subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset += IortNode->Length;
Al Stone 3df7a9
-        IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, IortNode->Length);
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
Al Stone 3df7a9
+        Offset += NodeLength;
Al Stone 3df7a9
+        IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeLength);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1903,11 +1964,14 @@
Al Stone 3df7a9
     ACPI_IVRS_DE_HEADER     *DeviceEntry;
Al Stone 3df7a9
     ACPI_IVRS_HEADER        *SubTable;
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
+    UINT16		    SubLength;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIvrs);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoIvrs);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -1916,13 +1980,14 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, AcpiDmTableInfoIvrsHdr);
Al Stone 3df7a9
+        ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
+            SubLength, AcpiDmTableInfoIvrsHdr);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -1949,7 +2014,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Attempt to continue */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            if (!SubTable->Length)
Al Stone 3df7a9
+            if (!SubLength)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 AcpiOsPrintf ("Invalid zero length subtable\n");
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -1960,8 +2025,8 @@
Al Stone 3df7a9
         /* Dump the subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, InfoTable);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
+            SubLength, InfoTable);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -1975,7 +2040,7 @@
Al Stone 3df7a9
             DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, SubTable,
Al Stone 3df7a9
                 sizeof (ACPI_IVRS_HARDWARE));
Al Stone 3df7a9
 
Al Stone 3df7a9
-            while (EntryOffset < (Offset + SubTable->Length))
Al Stone 3df7a9
+            while (EntryOffset < (Offset + SubLength))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 AcpiOsPrintf ("\n");
Al Stone 3df7a9
                 /*
Al Stone 3df7a9
@@ -2037,7 +2102,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
                 /* Dump the Device Entry */
Al Stone 3df7a9
 
Al Stone 3df7a9
-                Status = AcpiDmDumpTable (Table->Length, EntryOffset,
Al Stone 3df7a9
+                Status = AcpiDmDumpTable (Length, EntryOffset,
Al Stone 3df7a9
                     DeviceEntry, EntryLength, InfoTable);
Al Stone 3df7a9
                 if (ACPI_FAILURE (Status))
Al Stone 3df7a9
                 {
Al Stone 3df7a9
@@ -2053,8 +2118,8 @@
Al Stone 3df7a9
 NextSubTable:
Al Stone 3df7a9
         /* Point to next subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset += SubTable->Length;
Al Stone 3df7a9
-        SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, SubTable, SubTable->Length);
Al Stone 3df7a9
+        Offset += SubLength;
Al Stone 3df7a9
+        SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, SubTable, SubLength);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -2080,7 +2145,7 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_LPIT_HEADER        *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_LPIT);
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
     UINT32                  SubTableLength;
Al Stone 3df7a9
@@ -2088,8 +2153,9 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_LPIT_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -2153,13 +2219,14 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_SUBTABLE_HEADER    *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_MADT);
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMadt);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -2169,7 +2236,7 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -2315,11 +2382,13 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_MCFG);
Al Stone 3df7a9
     ACPI_MCFG_ALLOCATION    *SubTable;
Al Stone 3df7a9
+    UINT32		    Len;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMcfg);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Len, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Len, 0, Table, 0, AcpiDmTableInfoMcfg);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -2328,17 +2397,17 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Len)
Al Stone 3df7a9
     {
Al Stone 3df7a9
-        if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length)
Al Stone 3df7a9
+        if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Len)
Al Stone 3df7a9
         {
Al Stone 3df7a9
             AcpiOsPrintf ("Warning: there are %u invalid trailing bytes\n",
Al Stone 3df7a9
-                sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length));
Al Stone 3df7a9
+                sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Len));
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Len, Offset, SubTable,
Al Stone 3df7a9
             sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -2372,6 +2441,7 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_MPST);
Al Stone 3df7a9
+    ACPI_TABLE_MPST	    *Mpst;
Al Stone 3df7a9
     ACPI_MPST_POWER_NODE    *SubTable0;
Al Stone 3df7a9
     ACPI_MPST_POWER_STATE   *SubTable0A;
Al Stone 3df7a9
     ACPI_MPST_COMPONENT     *SubTable0B;
Al Stone 3df7a9
@@ -2380,11 +2450,13 @@
Al Stone 3df7a9
     UINT16                  SubtableCount;
Al Stone 3df7a9
     UINT32                  PowerStateCount;
Al Stone 3df7a9
     UINT32                  ComponentCount;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMpst);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMpst);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -2392,13 +2464,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Subtable: Memory Power Node(s) */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    SubtableCount = (ACPI_CAST_PTR (ACPI_TABLE_MPST, Table))->PowerNodeCount;
Al Stone 3df7a9
+    Mpst = ACPI_CAST_PTR (ACPI_TABLE_MPST, Table);
Al Stone 3df7a9
+    ACPI_MOVE_16_TO_16(&SubtableCount, &Mpst->PowerNodeCount);
Al Stone 3df7a9
     SubTable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Table, Offset);
Al Stone 3df7a9
 
Al Stone 3df7a9
-    while ((Offset < Table->Length) && SubtableCount)
Al Stone 3df7a9
+    while ((Offset < Length) && SubtableCount)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable0,
Al Stone 3df7a9
             sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -2407,8 +2480,8 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Extract the sub-subtable counts */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        PowerStateCount = SubTable0->NumPowerStates;
Al Stone 3df7a9
-        ComponentCount = SubTable0->NumPhysicalComponents;
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&PowerStateCount, &SubTable0->NumPowerStates);
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&ComponentCount, &SubTable0->NumPhysicalComponents);
Al Stone 3df7a9
         Offset += sizeof (ACPI_MPST_POWER_NODE);
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Sub-subtables - Memory Power State Structure(s) */
Al Stone 3df7a9
@@ -2419,7 +2492,7 @@
Al Stone 3df7a9
         while (PowerStateCount)
Al Stone 3df7a9
         {
Al Stone 3df7a9
             AcpiOsPrintf ("\n");
Al Stone 3df7a9
-            Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0A,
Al Stone 3df7a9
+            Status = AcpiDmDumpTable (Length, Offset, SubTable0A,
Al Stone 3df7a9
                 sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
@@ -2429,7 +2502,7 @@
Al Stone 3df7a9
             SubTable0A++;
Al Stone 3df7a9
             PowerStateCount--;
Al Stone 3df7a9
             Offset += sizeof (ACPI_MPST_POWER_STATE);
Al Stone 3df7a9
-       }
Al Stone 3df7a9
+        }
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Sub-subtables - Physical Component ID Structure(s) */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -2442,7 +2515,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         while (ComponentCount)
Al Stone 3df7a9
         {
Al Stone 3df7a9
-            Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0B,
Al Stone 3df7a9
+            Status = AcpiDmDumpTable (Length, Offset, SubTable0B,
Al Stone 3df7a9
                 sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
@@ -2457,17 +2530,19 @@
Al Stone 3df7a9
         /* Point to next Memory Power Node subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
         SubtableCount--;
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&PowerStateCount, &SubTable0->NumPowerStates);
Al Stone 3df7a9
+        ACPI_MOVE_32_TO_32(&ComponentCount, &SubTable0->NumPhysicalComponents);
Al Stone 3df7a9
         SubTable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, SubTable0,
Al Stone 3df7a9
             sizeof (ACPI_MPST_POWER_NODE) +
Al Stone 3df7a9
-            (sizeof (ACPI_MPST_POWER_STATE) * SubTable0->NumPowerStates) +
Al Stone 3df7a9
-            (sizeof (ACPI_MPST_COMPONENT) * SubTable0->NumPhysicalComponents));
Al Stone 3df7a9
+            (sizeof (ACPI_MPST_POWER_STATE) * PowerStateCount) +
Al Stone 3df7a9
+            (sizeof (ACPI_MPST_COMPONENT) * ComponentCount));
Al Stone 3df7a9
     }
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Subtable: Count of Memory Power State Characteristic structures */
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiOsPrintf ("\n");
Al Stone 3df7a9
     SubTable1 = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, SubTable0);
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, Offset, SubTable1,
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, Offset, SubTable1,
Al Stone 3df7a9
         sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -2482,10 +2557,10 @@
Al Stone 3df7a9
     SubTable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, SubTable1,
Al Stone 3df7a9
         sizeof (ACPI_MPST_DATA_HDR));
Al Stone 3df7a9
 
Al Stone 3df7a9
-    while ((Offset < Table->Length) && SubtableCount)
Al Stone 3df7a9
+    while ((Offset < Length) && SubtableCount)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable2,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable2,
Al Stone 3df7a9
             sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -2518,11 +2593,13 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_MSCT);
Al Stone 3df7a9
     ACPI_MSCT_PROXIMITY     *SubTable;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMsct);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMsct);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -2531,12 +2608,12 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
             sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -2571,11 +2648,13 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_MTMR);
Al Stone 3df7a9
     ACPI_MTMR_ENTRY         *SubTable;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMtmr);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMtmr);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -2584,12 +2663,12 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
             sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -2631,11 +2710,17 @@
Al Stone 3df7a9
     ACPI_NFIT_SMBIOS        *SmbiosInfo = NULL;
Al Stone 3df7a9
     ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL;
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
+    UINT32                  TableLength;
Al Stone 3df7a9
+    UINT16                  SubLength;
Al Stone 3df7a9
+    UINT16                  SubType;
Al Stone 3df7a9
+    UINT32                  Count;
Al Stone 3df7a9
+    UINT16                  Count16;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoNfit);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&TableLength, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNfit);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -2644,19 +2729,21 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < TableLength)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* NFIT subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, AcpiDmTableInfoNfitHdr);
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (TableLength, Offset, SubTable,
Al Stone 3df7a9
+            SubLength, AcpiDmTableInfoNfitHdr);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
-        switch (SubTable->Type)
Al Stone 3df7a9
+	ACPI_MOVE_16_TO_16(&SubType, &SubTable->Type);
Al Stone 3df7a9
+        switch (SubType)
Al Stone 3df7a9
         {
Al Stone 3df7a9
         case ACPI_NFIT_TYPE_SYSTEM_ADDRESS:
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -2708,7 +2795,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Attempt to continue */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            if (!SubTable->Length)
Al Stone 3df7a9
+            if (!SubLength)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 AcpiOsPrintf ("Invalid zero length subtable\n");
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -2717,8 +2804,8 @@
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, InfoTable);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (TableLength, Offset, SubTable,
Al Stone 3df7a9
+            SubLength, InfoTable);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -2726,13 +2813,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Per-subtable variable-length fields */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        switch (SubTable->Type)
Al Stone 3df7a9
+        switch (SubType)
Al Stone 3df7a9
         {
Al Stone 3df7a9
         case ACPI_NFIT_TYPE_INTERLEAVE:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            for (i = 0; i < Interleave->LineCount; i++)
Al Stone 3df7a9
+	    ACPI_MOVE_32_TO_32(&Count, &Interleave->LineCount);
Al Stone 3df7a9
+            for (i = 0; i < Count; i++)
Al Stone 3df7a9
             {
Al Stone 3df7a9
-                Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
Al Stone 3df7a9
+                Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset,
Al Stone 3df7a9
                     &Interleave->LineOffset[i],
Al Stone 3df7a9
                     sizeof (UINT32), AcpiDmTableInfoNfit2a);
Al Stone 3df7a9
                 if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -2746,12 +2834,11 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         case ACPI_NFIT_TYPE_SMBIOS:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            Length = SubTable->Length -
Al Stone 3df7a9
-                sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8);
Al Stone 3df7a9
+            Length = SubLength - sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8);
Al Stone 3df7a9
 
Al Stone 3df7a9
             if (Length)
Al Stone 3df7a9
             {
Al Stone 3df7a9
-                Status = AcpiDmDumpTable (Table->Length,
Al Stone 3df7a9
+                Status = AcpiDmDumpTable (TableLength,
Al Stone 3df7a9
                     sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8),
Al Stone 3df7a9
                     SmbiosInfo,
Al Stone 3df7a9
                     Length, AcpiDmTableInfoNfit3a);
Al Stone 3df7a9
@@ -2765,9 +2852,10 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         case ACPI_NFIT_TYPE_FLUSH_ADDRESS:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            for (i = 0; i < Hint->HintCount; i++)
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&Count16, &Hint->HintCount);
Al Stone 3df7a9
+            for (i = 0; i < Count16; i++)
Al Stone 3df7a9
             {
Al Stone 3df7a9
-                Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
Al Stone 3df7a9
+                Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset,
Al Stone 3df7a9
                     &Hint->HintAddress[i],
Al Stone 3df7a9
                     sizeof (UINT64), AcpiDmTableInfoNfit6a);
Al Stone 3df7a9
                 if (ACPI_FAILURE (Status))
Al Stone 3df7a9
@@ -2786,8 +2874,8 @@
Al Stone 3df7a9
 NextSubTable:
Al Stone 3df7a9
         /* Point to next subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset += SubTable->Length;
Al Stone 3df7a9
-        SubTable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, SubTable, SubTable->Length);
Al Stone 3df7a9
+        Offset += SubLength;
Al Stone 3df7a9
+        SubTable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, SubTable, SubLength);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -2812,12 +2900,13 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_PCCT_SUBSPACE      *SubTable;
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_PCCT);
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPcct);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -2827,7 +2916,7 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -2903,16 +2992,21 @@
Al Stone 3df7a9
     ACPI_PMTT_HEADER        *MemSubTable;
Al Stone 3df7a9
     ACPI_PMTT_HEADER        *DimmSubTable;
Al Stone 3df7a9
     ACPI_PMTT_DOMAIN        *DomainArray;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_PMTT);
Al Stone 3df7a9
     UINT32                  MemOffset;
Al Stone 3df7a9
     UINT32                  DimmOffset;
Al Stone 3df7a9
     UINT32                  DomainOffset;
Al Stone 3df7a9
-    UINT32                  DomainCount;
Al Stone 3df7a9
+    UINT16                  DomainCount;
Al Stone 3df7a9
+    UINT16		    SubLength;
Al Stone 3df7a9
+    UINT16		    Tmp16;
Al Stone 3df7a9
+    UINT16		    MemLength;
Al Stone 3df7a9
+    UINT16		    DimmLength;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPmtt);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -2922,13 +3016,14 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
+        ACPI_MOVE_16_TO_16(&SubLength, &SubTable->Length);
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, AcpiDmTableInfoPmttHdr);
Al Stone 3df7a9
+            SubLength, AcpiDmTableInfoPmttHdr);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -2947,7 +3042,7 @@
Al Stone 3df7a9
         /* Dump the fixed-length portion of the subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
         Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
-            SubTable->Length, AcpiDmTableInfoPmtt0);
Al Stone 3df7a9
+            SubLength, AcpiDmTableInfoPmtt0);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return;
Al Stone 3df7a9
@@ -2959,15 +3054,16 @@
Al Stone 3df7a9
         MemSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, SubTable,
Al Stone 3df7a9
             sizeof (ACPI_PMTT_SOCKET));
Al Stone 3df7a9
 
Al Stone 3df7a9
-        while (((Offset + MemOffset) < Table->Length) &&
Al Stone 3df7a9
-            (MemOffset < SubTable->Length))
Al Stone 3df7a9
+        while (((Offset + MemOffset) < Length) &&
Al Stone 3df7a9
+            (MemOffset < SubLength))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
             AcpiOsPrintf ("\n");
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&MemLength, &MemSubTable->Length);
Al Stone 3df7a9
             Status = AcpiDmDumpTable (Length,
Al Stone 3df7a9
                 Offset + MemOffset, MemSubTable,
Al Stone 3df7a9
-                MemSubTable->Length, AcpiDmTableInfoPmttHdr);
Al Stone 3df7a9
+                MemLength, AcpiDmTableInfoPmttHdr);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -2987,7 +3083,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             Status = AcpiDmDumpTable (Length,
Al Stone 3df7a9
                 Offset + MemOffset, MemSubTable,
Al Stone 3df7a9
-                MemSubTable->Length, AcpiDmTableInfoPmtt1);
Al Stone 3df7a9
+                MemLength, AcpiDmTableInfoPmtt1);
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 return;
Al Stone 3df7a9
@@ -2995,13 +3091,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Walk the variable count of proximity domains */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            DomainCount = ((ACPI_PMTT_CONTROLLER *) MemSubTable)->DomainCount;
Al Stone 3df7a9
+	    Tmp16 = ((ACPI_PMTT_CONTROLLER *) MemSubTable)->DomainCount;
Al Stone 3df7a9
+            ACPI_MOVE_16_TO_16(&DomainCount, &Tmp16);
Al Stone 3df7a9
             DomainOffset = sizeof (ACPI_PMTT_CONTROLLER);
Al Stone 3df7a9
             DomainArray = ACPI_ADD_PTR (ACPI_PMTT_DOMAIN, MemSubTable,
Al Stone 3df7a9
                 sizeof (ACPI_PMTT_CONTROLLER));
Al Stone 3df7a9
 
Al Stone 3df7a9
-            while (((Offset + MemOffset + DomainOffset) < Table->Length) &&
Al Stone 3df7a9
-                ((MemOffset + DomainOffset) < SubTable->Length) &&
Al Stone 3df7a9
+            while (((Offset + MemOffset + DomainOffset) < Length) &&
Al Stone 3df7a9
+                ((MemOffset + DomainOffset) < SubLength) &&
Al Stone 3df7a9
                 DomainCount)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 Status = AcpiDmDumpTable (Length,
Al Stone 3df7a9
@@ -3029,15 +3126,16 @@
Al Stone 3df7a9
             DimmSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, MemSubTable,
Al Stone 3df7a9
                 DomainOffset);
Al Stone 3df7a9
 
Al Stone 3df7a9
-            while (((Offset + MemOffset + DimmOffset) < Table->Length) &&
Al Stone 3df7a9
-                (DimmOffset < MemSubTable->Length))
Al Stone 3df7a9
+            while (((Offset + MemOffset + DimmOffset) < Length) &&
Al Stone 3df7a9
+                (DimmOffset < MemLength))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
                 AcpiOsPrintf ("\n");
Al Stone 3df7a9
+		ACPI_MOVE_16_TO_16(&DimmLength, &DimmSubTable->Length);
Al Stone 3df7a9
                 Status = AcpiDmDumpTable (Length,
Al Stone 3df7a9
                     Offset + MemOffset + DimmOffset, DimmSubTable,
Al Stone 3df7a9
-                    DimmSubTable->Length, AcpiDmTableInfoPmttHdr);
Al Stone 3df7a9
+                    DimmLength, AcpiDmTableInfoPmttHdr);
Al Stone 3df7a9
                 if (ACPI_FAILURE (Status))
Al Stone 3df7a9
                 {
Al Stone 3df7a9
                     return;
Al Stone 3df7a9
@@ -3057,7 +3155,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
                 Status = AcpiDmDumpTable (Length,
Al Stone 3df7a9
                     Offset + MemOffset + DimmOffset, DimmSubTable,
Al Stone 3df7a9
-                    DimmSubTable->Length, AcpiDmTableInfoPmtt2);
Al Stone 3df7a9
+                    DimmLength, AcpiDmTableInfoPmtt2);
Al Stone 3df7a9
                 if (ACPI_FAILURE (Status))
Al Stone 3df7a9
                 {
Al Stone 3df7a9
                     return;
Al Stone 3df7a9
@@ -3065,23 +3163,22 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
                 /* Point to next DIMM subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-                DimmOffset += DimmSubTable->Length;
Al Stone 3df7a9
+                DimmOffset += DimmLength;
Al Stone 3df7a9
                 DimmSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
Al Stone 3df7a9
-                    DimmSubTable, DimmSubTable->Length);
Al Stone 3df7a9
+                    DimmSubTable, DimmLength);
Al Stone 3df7a9
             }
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Point to next Controller subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            MemOffset += MemSubTable->Length;
Al Stone 3df7a9
+            MemOffset += MemLength;
Al Stone 3df7a9
             MemSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
Al Stone 3df7a9
-                MemSubTable, MemSubTable->Length);
Al Stone 3df7a9
+                MemSubTable, MemLength);
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Point to next Socket subtable */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset += SubTable->Length;
Al Stone 3df7a9
-        SubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
Al Stone 3df7a9
-            SubTable, SubTable->Length);
Al Stone 3df7a9
+        Offset += SubLength;
Al Stone 3df7a9
+        SubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, SubTable, SubLength);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -3107,6 +3204,8 @@
Al Stone 3df7a9
     ACPI_FPDT_HEADER        *SubTable;
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
     ACPI_TABLE_S3PT         *S3ptTable = ACPI_CAST_PTR (ACPI_TABLE_S3PT, Tables);
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
+    UINT16                  SubType;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
@@ -3117,20 +3216,22 @@
Al Stone 3df7a9
         return 0;
Al Stone 3df7a9
     }
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &S3ptTable->Length);
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, S3ptTable, Offset);
Al Stone 3df7a9
-    while (Offset < S3ptTable->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (S3ptTable->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
             SubTable->Length, AcpiDmTableInfoS3ptHdr);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
             return 0;
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
-        switch (SubTable->Type)
Al Stone 3df7a9
+        ACPI_MOVE_16_TO_16(&SubType, &SubTable->Type);
Al Stone 3df7a9
+        switch (SubType)
Al Stone 3df7a9
         {
Al Stone 3df7a9
         case ACPI_S3PT_TYPE_RESUME:
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -3145,7 +3246,7 @@
Al Stone 3df7a9
         default:
Al Stone 3df7a9
 
Al Stone 3df7a9
             AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n",
Al Stone 3df7a9
-                SubTable->Type);
Al Stone 3df7a9
+                SubType);
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Attempt to continue */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -3158,7 +3259,7 @@
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (S3ptTable->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
             SubTable->Length, InfoTable);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -3192,9 +3293,11 @@
Al Stone 3df7a9
 AcpiDmDumpSlic (
Al Stone 3df7a9
     ACPI_TABLE_HEADER       *Table)
Al Stone 3df7a9
 {
Al Stone 3df7a9
+    UINT32	Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
-    (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table,
Al Stone 3df7a9
-        Table->Length - sizeof (*Table), AcpiDmTableInfoSlic);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    (void) AcpiDmDumpTable (Length, sizeof (ACPI_TABLE_HEADER), Table,
Al Stone 3df7a9
+        Length - sizeof (*Table), AcpiDmTableInfoSlic);
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -3217,14 +3320,17 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT32                  Offset;
Al Stone 3df7a9
     UINT8                   *Row;
Al Stone 3df7a9
-    UINT32                  Localities;
Al Stone 3df7a9
+    UINT64                  Localities;
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
     UINT32                  j;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
+    UINT64                  Tmp64;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSlit);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSlit);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -3232,7 +3338,8 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Display the Locality NxN Matrix */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Localities = (UINT32) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
Al Stone 3df7a9
+    Tmp64 = (UINT64) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
Al Stone 3df7a9
+    ACPI_MOVE_64_TO_64(&Localities, &Tmp64);
Al Stone 3df7a9
     Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]);
Al Stone 3df7a9
     Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry;
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -3245,7 +3352,7 @@
Al Stone 3df7a9
         {
Al Stone 3df7a9
             /* Check for beyond EOT */
Al Stone 3df7a9
 
Al Stone 3df7a9
-            if (Offset >= Table->Length)
Al Stone 3df7a9
+            if (Offset >= Length)
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 AcpiOsPrintf (
Al Stone 3df7a9
                     "\n**** Not enough room in table for all localities\n");
Al Stone 3df7a9
@@ -3297,11 +3404,13 @@
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_SRAT);
Al Stone 3df7a9
     ACPI_SUBTABLE_HEADER    *SubTable;
Al Stone 3df7a9
     ACPI_DMTABLE_INFO       *InfoTable;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSrat);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSrat);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -3310,12 +3419,12 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
             SubTable->Length, AcpiDmTableInfoSratHdr);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -3359,7 +3468,7 @@
Al Stone 3df7a9
         }
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
             SubTable->Length, InfoTable);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -3396,13 +3505,14 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     char                    *Namepath;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT32                  StringLength;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_STAO);
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoStao);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -3411,7 +3521,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* The rest of the table consists of Namepath strings */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         Namepath = ACPI_ADD_PTR (char, Table, Offset);
Al Stone 3df7a9
         StringLength = strlen (Namepath) + 1;
Al Stone 3df7a9
@@ -3453,11 +3563,14 @@
Al Stone 3df7a9
     ACPI_TABLE_TCPA_HDR     *SubTable = ACPI_ADD_PTR (
Al Stone 3df7a9
                                 ACPI_TABLE_TCPA_HDR, Table, Offset);
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
+    UINT16		    PlatformClass;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table,
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table,
Al Stone 3df7a9
         0, AcpiDmTableInfoTcpaHdr);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -3468,18 +3581,19 @@
Al Stone 3df7a9
      * Examine the PlatformClass field to determine the table type.
Al Stone 3df7a9
      * Either a client or server table. Only one.
Al Stone 3df7a9
      */
Al Stone 3df7a9
-    switch (CommonHeader->PlatformClass)
Al Stone 3df7a9
+    ACPI_MOVE_16_TO_16(&PlatformClass, &CommonHeader->PlatformClass);
Al Stone 3df7a9
+    switch (PlatformClass)
Al Stone 3df7a9
     {
Al Stone 3df7a9
     case ACPI_TCPA_CLIENT_TABLE:
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
-            Table->Length - Offset, AcpiDmTableInfoTcpaClient);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
+            Length - Offset, AcpiDmTableInfoTcpaClient);
Al Stone 3df7a9
         break;
Al Stone 3df7a9
 
Al Stone 3df7a9
     case ACPI_TCPA_SERVER_TABLE:
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
-            Table->Length - Offset, AcpiDmTableInfoTcpaServer);
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
+            Length - Offset, AcpiDmTableInfoTcpaServer);
Al Stone 3df7a9
         break;
Al Stone 3df7a9
 
Al Stone 3df7a9
     default:
Al Stone 3df7a9
@@ -3516,11 +3630,13 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_VRTC);
Al Stone 3df7a9
     ACPI_VRTC_ENTRY         *SubTable;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoVrtc);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoVrtc);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -3529,12 +3645,12 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
             sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -3569,11 +3685,13 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT32                  Offset = sizeof (ACPI_TABLE_WDAT);
Al Stone 3df7a9
     ACPI_WDAT_ENTRY         *SubTable;
Al Stone 3df7a9
+    UINT32		    Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoWdat);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
+    Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWdat);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -3582,12 +3700,12 @@
Al Stone 3df7a9
     /* Subtables */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, Table, Offset);
Al Stone 3df7a9
-    while (Offset < Table->Length)
Al Stone 3df7a9
+    while (Offset < Length)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* Common subtable header */
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiOsPrintf ("\n");
Al Stone 3df7a9
-        Status = AcpiDmDumpTable (Table->Length, Offset, SubTable,
Al Stone 3df7a9
+        Status = AcpiDmDumpTable (Length, Offset, SubTable,
Al Stone 3df7a9
             sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0);
Al Stone 3df7a9
         if (ACPI_FAILURE (Status))
Al Stone 3df7a9
         {
Al Stone 3df7a9
@@ -3622,12 +3740,13 @@
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     ACPI_TABLE_WPBT         *SubTable;
Al Stone 3df7a9
-    UINT32                  Length = Table->Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
     UINT16                  ArgumentsLength;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Dump the main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Length, &Table->Length);
Al Stone 3df7a9
     Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWpbt);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -3637,10 +3756,10 @@
Al Stone 3df7a9
     /* Extract the arguments buffer length from the main table */
Al Stone 3df7a9
 
Al Stone 3df7a9
     SubTable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table);
Al Stone 3df7a9
-    ArgumentsLength = SubTable->ArgumentsLength;
Al Stone 3df7a9
+    ACPI_MOVE_16_TO_16(&ArgumentsLength, &SubTable->ArgumentsLength);
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Dump the arguments buffer */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    (void) AcpiDmDumpTable (Table->Length, 0, Table, ArgumentsLength,
Al Stone 3df7a9
+    (void) AcpiDmDumpTable (Length, 0, Table, ArgumentsLength,
Al Stone 3df7a9
         AcpiDmTableInfoWpbt0);
Al Stone 3df7a9
 }
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/components/disassembler/dmbuffer.c acpica-unix2-20160930-s390/source/components/disassembler/dmbuffer.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/components/disassembler/dmbuffer.c	2016-09-30 10:43:58.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/components/disassembler/dmbuffer.c	2016-10-28 14:25:41.876397798 -0600
Al Stone 3df7a9
@@ -204,7 +204,7 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     ByteData = Op->Named.Data;
Al Stone 3df7a9
-    ByteCount = (UINT32) Op->Common.Value.Integer;
Al Stone 3df7a9
+    ByteCount = (UINT32) Op->Common.Value.Size;
Al Stone 3df7a9
 
Al Stone 3df7a9
     /*
Al Stone 3df7a9
      * The byte list belongs to a buffer, and can be produced by either
Al Stone 3df7a9
@@ -304,7 +304,8 @@
Al Stone 3df7a9
     /* Extract the byte list info */
Al Stone 3df7a9
 
Al Stone 3df7a9
     ByteData = NextOp->Named.Data;
Al Stone 3df7a9
-    ByteCount = (UINT32) NextOp->Common.Value.Integer;
Al Stone 3df7a9
+    /* ByteCount = (UINT32) NextOp->Common.Value.Integer; */
Al Stone 3df7a9
+    ByteCount = (UINT32) NextOp->Common.Value.Size;
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Byte count must be exactly 16 */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -954,16 +955,18 @@
Al Stone 3df7a9
     ACPI_PARSE_OBJECT       *Op)
Al Stone 3df7a9
 {
Al Stone 3df7a9
     UINT32                  Name;
Al Stone 3df7a9
+    UINT32                  TmpName;
Al Stone 3df7a9
     ACPI_PARSE_OBJECT       *NextOp;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Get the NameSegment */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    Name = AcpiPsGetName (Op);
Al Stone 3df7a9
-    if (!Name)
Al Stone 3df7a9
+    TmpName = AcpiPsGetName (Op);
Al Stone 3df7a9
+    if (!TmpName)
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
     }
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Name, &TmpName);
Al Stone 3df7a9
 
Al Stone 3df7a9
     NextOp = AcpiPsGetDepthNext (NULL, Op);
Al Stone 3df7a9
     if (!NextOp)
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/components/disassembler/dmopcode.c acpica-unix2-20160930-s390/source/components/disassembler/dmopcode.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/components/disassembler/dmopcode.c	2016-09-30 10:43:58.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/components/disassembler/dmopcode.c	2016-10-28 14:25:41.877397793 -0600
Al Stone 3df7a9
@@ -244,6 +244,7 @@
Al Stone 3df7a9
     char                        *NameString;
Al Stone 3df7a9
     int                         LastCharIsDigit;
Al Stone 3df7a9
     int                         LastCharsAreHex;
Al Stone 3df7a9
+    char			TmpName[ACPI_NAME_SIZE + 1];
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     if (!Op)
Al Stone 3df7a9
@@ -261,7 +262,9 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Predefined name must start with an underscore */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    NameString = ACPI_CAST_PTR (char, &Op->Named.Name);
Al Stone 3df7a9
+    memset(TmpName, 0, ACPI_NAME_SIZE + 1);
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(TmpName, &Op->Named.Name);
Al Stone 3df7a9
+    NameString = TmpName;
Al Stone 3df7a9
     if (NameString[0] != '_')
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return;
Al Stone 3df7a9
@@ -871,21 +874,26 @@
Al Stone 3df7a9
         AcpiDmNamestring (Op->Common.Value.Name);
Al Stone 3df7a9
         break;
Al Stone 3df7a9
 
Al Stone 3df7a9
-    case AML_INT_NAMEDFIELD_OP:
Al Stone 3df7a9
+    case AML_INT_NAMEDFIELD_OP: {
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Length = AcpiDmDumpName (Op->Named.Name);
Al Stone 3df7a9
+	UINT32 TmpName;
Al Stone 3df7a9
+
Al Stone 3df7a9
+	ACPI_MOVE_32_TO_32(&TmpName, &Op->Named.Name);
Al Stone 3df7a9
+        Length = AcpiDmDumpName (TmpName);
Al Stone 3df7a9
         AcpiOsPrintf (",%*.s  %u", (unsigned) (5 - Length), " ",
Al Stone 3df7a9
-            (UINT32) Op->Common.Value.Integer);
Al Stone 3df7a9
+            (UINT32) Op->Common.Value.Size);
Al Stone 3df7a9
         AcpiDmCommaIfFieldMember (Op);
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Info->BitOffset += (UINT32) Op->Common.Value.Integer;
Al Stone 3df7a9
+        Info->BitOffset += (UINT32) Op->Common.Value.Size;
Al Stone 3df7a9
         break;
Al Stone 3df7a9
+    }
Al Stone 3df7a9
 
Al Stone 3df7a9
     case AML_INT_RESERVEDFIELD_OP:
Al Stone 3df7a9
 
Al Stone 3df7a9
         /* Offset() -- Must account for previous offsets */
Al Stone 3df7a9
 
Al Stone 3df7a9
-        Offset = (UINT32) Op->Common.Value.Integer;
Al Stone 3df7a9
+	//DEBUG
Al Stone 3df7a9
+        Offset = Op->Common.Value.Size;
Al Stone 3df7a9
         Info->BitOffset += Offset;
Al Stone 3df7a9
 
Al Stone 3df7a9
         if (Info->BitOffset % 8 == 0)
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/components/disassembler/dmresrc.c acpica-unix2-20160930-s390/source/components/disassembler/dmresrc.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/components/disassembler/dmresrc.c	2016-09-30 10:43:58.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/components/disassembler/dmresrc.c	2016-10-28 14:25:41.878397788 -0600
Al Stone 3df7a9
@@ -392,7 +392,7 @@
Al Stone 3df7a9
     ACPI_PARSE_OBJECT       *NextOp;
Al Stone 3df7a9
     UINT8                   *Aml;
Al Stone 3df7a9
     UINT8                   *EndAml;
Al Stone 3df7a9
-    ACPI_SIZE               Length;
Al Stone 3df7a9
+    UINT32                  Length;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* This op must be a buffer */
Al Stone 3df7a9
@@ -418,7 +418,7 @@
Al Stone 3df7a9
     }
Al Stone 3df7a9
 
Al Stone 3df7a9
     Aml = NextOp->Named.Data;
Al Stone 3df7a9
-    Length = (ACPI_SIZE) NextOp->Common.Value.Integer;
Al Stone 3df7a9
+    Length = NextOp->Common.Value.Size;
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Walk the byte list, abort on any invalid descriptor type or length */
Al Stone 3df7a9
 
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/components/disassembler/dmresrcl.c acpica-unix2-20160930-s390/source/components/disassembler/dmresrcl.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/components/disassembler/dmresrcl.c	2016-09-30 10:43:58.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/components/disassembler/dmresrcl.c	2016-10-28 14:25:41.876397798 -0600
Al Stone 3df7a9
@@ -141,7 +141,8 @@
Al Stone 3df7a9
     UINT32                  Level)
Al Stone 3df7a9
 {
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
-
Al Stone 3df7a9
+    UINT16		    Tmp16;
Al Stone 3df7a9
+    UINT32		    Tmp32;
Al Stone 3df7a9
 
Al Stone 3df7a9
     for (i = 0; i < 4; i++)
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -151,14 +152,14 @@
Al Stone 3df7a9
         {
Al Stone 3df7a9
         case 16:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
Al Stone 3df7a9
-                AcpiDmMemoryNames[i]);
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&Tmp16, &(ACPI_CAST_PTR (UINT16, Source)[i]));
Al Stone 3df7a9
+            AcpiDmDumpInteger16 (Tmp16, AcpiDmMemoryNames[i]);
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         case 32:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
Al Stone 3df7a9
-                AcpiDmMemoryNames[i]);
Al Stone 3df7a9
+	    ACPI_MOVE_32_TO_32(&Tmp32, &(ACPI_CAST_PTR (UINT32, Source)[i]));
Al Stone 3df7a9
+            AcpiDmDumpInteger32 (Tmp32, AcpiDmMemoryNames[i]);
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         default:
Al Stone 3df7a9
@@ -190,7 +191,9 @@
Al Stone 3df7a9
     UINT32                  Level)
Al Stone 3df7a9
 {
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
-
Al Stone 3df7a9
+    UINT16		    Tmp16;
Al Stone 3df7a9
+    UINT32		    Tmp32;
Al Stone 3df7a9
+    UINT64		    Tmp64;
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiOsPrintf ("\n");
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -202,20 +205,20 @@
Al Stone 3df7a9
         {
Al Stone 3df7a9
         case 16:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
Al Stone 3df7a9
-                AcpiDmAddressNames[i]);
Al Stone 3df7a9
+	    ACPI_MOVE_16_TO_16(&Tmp16, &(ACPI_CAST_PTR (UINT16, Source)[i]));
Al Stone 3df7a9
+            AcpiDmDumpInteger16 (Tmp16, AcpiDmAddressNames[i]);
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         case 32:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
Al Stone 3df7a9
-                AcpiDmAddressNames[i]);
Al Stone 3df7a9
+	    ACPI_MOVE_32_TO_32(&Tmp32, &(ACPI_CAST_PTR (UINT32, Source)[i]));
Al Stone 3df7a9
+            AcpiDmDumpInteger32 (Tmp32, AcpiDmAddressNames[i]);
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         case 64:
Al Stone 3df7a9
 
Al Stone 3df7a9
-            AcpiDmDumpInteger64 (ACPI_CAST_PTR (UINT64, Source)[i],
Al Stone 3df7a9
-                AcpiDmAddressNames[i]);
Al Stone 3df7a9
+	    ACPI_MOVE_64_TO_64(&Tmp64, &(ACPI_CAST_PTR (UINT64, Source)[i]));
Al Stone 3df7a9
+            AcpiDmDumpInteger64 (Tmp64, AcpiDmAddressNames[i]);
Al Stone 3df7a9
             break;
Al Stone 3df7a9
 
Al Stone 3df7a9
         default:
Al Stone 3df7a9
@@ -868,6 +871,7 @@
Al Stone 3df7a9
     UINT32                  Length,
Al Stone 3df7a9
     UINT32                  Level)
Al Stone 3df7a9
 {
Al Stone 3df7a9
+    UINT32 Tmp;
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Dump name and read/write flag */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -876,12 +880,12 @@
Al Stone 3df7a9
         AcpiGbl_RwDecode [ACPI_GET_1BIT_FLAG (Resource->FixedMemory32.Flags)]);
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level + 1);
Al Stone 3df7a9
-    AcpiDmDumpInteger32 (Resource->FixedMemory32.Address,
Al Stone 3df7a9
-        "Address Base");
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Tmp, &Resource->FixedMemory32.Address);
Al Stone 3df7a9
+    AcpiDmDumpInteger32 (Tmp, "Address Base");
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level + 1);
Al Stone 3df7a9
-    AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength,
Al Stone 3df7a9
-        "Address Length");
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&Tmp, &Resource->FixedMemory32.AddressLength);
Al Stone 3df7a9
+    AcpiDmDumpInteger32 (Tmp, "Address Length");
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Insert a descriptor name */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -972,7 +976,7 @@
Al Stone 3df7a9
     UINT32                  Level)
Al Stone 3df7a9
 {
Al Stone 3df7a9
     UINT32                  i;
Al Stone 3df7a9
-
Al Stone 3df7a9
+    UINT16		    Tmp16;
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level);
Al Stone 3df7a9
     AcpiOsPrintf ("Interrupt (%s, %s, %s, %s, ",
Al Stone 3df7a9
@@ -986,10 +990,11 @@
Al Stone 3df7a9
      * list. Must compute length based on length of the list. First xrupt
Al Stone 3df7a9
      * is included in the struct (reason for -1 below)
Al Stone 3df7a9
      */
Al Stone 3df7a9
+    ACPI_MOVE_16_TO_16(&Tmp16, &Resource->ExtendedIrq.ResourceLength);
Al Stone 3df7a9
     AcpiDmResourceSource (Resource,
Al Stone 3df7a9
         sizeof (AML_RESOURCE_EXTENDED_IRQ) +
Al Stone 3df7a9
             ((UINT32) Resource->ExtendedIrq.InterruptCount - 1) * sizeof (UINT32),
Al Stone 3df7a9
-        Resource->ExtendedIrq.ResourceLength);
Al Stone 3df7a9
+        Tmp16);
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Insert a descriptor name */
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -1002,9 +1007,12 @@
Al Stone 3df7a9
     AcpiOsPrintf ("{\n");
Al Stone 3df7a9
     for (i = 0; i < Resource->ExtendedIrq.InterruptCount; i++)
Al Stone 3df7a9
     {
Al Stone 3df7a9
+	UINT32 Tmp32, Val32;
Al Stone 3df7a9
+
Al Stone 3df7a9
         AcpiDmIndent (Level + 1);
Al Stone 3df7a9
-        AcpiOsPrintf ("0x%8.8X,\n",
Al Stone 3df7a9
-            (UINT32) Resource->ExtendedIrq.Interrupts[i]);
Al Stone 3df7a9
+	Val32 = (UINT32) Resource->ExtendedIrq.Interrupts[i];
Al Stone 3df7a9
+	ACPI_MOVE_32_TO_32(&Tmp32, &Val32);
Al Stone 3df7a9
+        AcpiOsPrintf ("0x%8.8X,\n", Tmp32);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level);
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/components/disassembler/dmresrcs.c acpica-unix2-20160930-s390/source/components/disassembler/dmresrcs.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/components/disassembler/dmresrcs.c	2016-09-30 10:43:58.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/components/disassembler/dmresrcs.c	2016-10-28 14:25:41.876397798 -0600
Al Stone 3df7a9
@@ -72,6 +72,7 @@
Al Stone 3df7a9
     UINT32                  Length,
Al Stone 3df7a9
     UINT32                  Level)
Al Stone 3df7a9
 {
Al Stone 3df7a9
+    UINT16 Tmp;
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level);
Al Stone 3df7a9
     AcpiOsPrintf ("%s (",
Al Stone 3df7a9
@@ -93,7 +94,8 @@
Al Stone 3df7a9
     AcpiOsPrintf (")\n");
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level + 1);
Al Stone 3df7a9
-    AcpiDmBitList (Resource->Irq.IrqMask);
Al Stone 3df7a9
+    ACPI_MOVE_16_TO_16(&Tmp, &Resource->Irq.IrqMask);
Al Stone 3df7a9
+    AcpiDmBitList (Tmp);
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
@@ -204,16 +206,19 @@
Al Stone 3df7a9
     UINT32                  Length,
Al Stone 3df7a9
     UINT32                  Level)
Al Stone 3df7a9
 {
Al Stone 3df7a9
+    UINT16 Tmp16;
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level);
Al Stone 3df7a9
     AcpiOsPrintf ("IO (%s,\n",
Al Stone 3df7a9
         AcpiGbl_IoDecode [ACPI_GET_1BIT_FLAG (Resource->Io.Flags)]);
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level + 1);
Al Stone 3df7a9
-    AcpiDmDumpInteger16 (Resource->Io.Minimum, "Range Minimum");
Al Stone 3df7a9
+    ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Io.Minimum);
Al Stone 3df7a9
+    AcpiDmDumpInteger16 (Tmp16, "Range Minimum");
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level + 1);
Al Stone 3df7a9
-    AcpiDmDumpInteger16 (Resource->Io.Maximum, "Range Maximum");
Al Stone 3df7a9
+    ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Io.Maximum);
Al Stone 3df7a9
+    AcpiDmDumpInteger16 (Tmp16, "Range Maximum");
Al Stone 3df7a9
 
Al Stone 3df7a9
     AcpiDmIndent (Level + 1);
Al Stone 3df7a9
     AcpiDmDumpInteger8 (Resource->Io.Alignment, "Alignment");
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/components/dispatcher/dsfield.c acpica-unix2-20160930-s390/source/components/dispatcher/dsfield.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/components/dispatcher/dsfield.c	2016-09-30 10:43:58.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/components/dispatcher/dsfield.c	2016-10-28 14:25:41.879397782 -0600
Al Stone 3df7a9
@@ -318,6 +318,7 @@
Al Stone 3df7a9
     ACPI_STATUS             Status;
Al Stone 3df7a9
     UINT64                  Position;
Al Stone 3df7a9
     ACPI_PARSE_OBJECT       *Child;
Al Stone 3df7a9
+    UINT32 TmpName;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     ACPI_FUNCTION_TRACE_PTR (DsGetFieldNames, Info);
Al Stone 3df7a9
@@ -424,10 +425,17 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
             /* Lookup the name, it should already exist */
Al Stone 3df7a9
 
Al Stone 3df7a9
+	    ACPI_MOVE_32_TO_32(&TmpName, &Arg->Named.Name);
Al Stone 3df7a9
+            Status = AcpiNsLookup (WalkState->ScopeInfo,
Al Stone 3df7a9
+                (char *) &TmpName, Info->FieldType,
Al Stone 3df7a9
+                ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE,
Al Stone 3df7a9
+                WalkState, &Info->FieldNode);
Al Stone 3df7a9
+	/*
Al Stone 3df7a9
             Status = AcpiNsLookup (WalkState->ScopeInfo,
Al Stone 3df7a9
                 (char *) &Arg->Named.Name, Info->FieldType,
Al Stone 3df7a9
                 ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE,
Al Stone 3df7a9
                 WalkState, &Info->FieldNode);
Al Stone 3df7a9
+	*/
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status);
Al Stone 3df7a9
@@ -652,9 +660,17 @@
Al Stone 3df7a9
          */
Al Stone 3df7a9
         if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
Al Stone 3df7a9
         {
Al Stone 3df7a9
+	    UINT32 TmpName;
Al Stone 3df7a9
+
Al Stone 3df7a9
+            ACPI_MOVE_32_TO_32(&TmpName, &Arg->Named.Name);
Al Stone 3df7a9
+            Status = AcpiNsLookup (WalkState->ScopeInfo,
Al Stone 3df7a9
+                (char *) &TmpName, Type, ACPI_IMODE_LOAD_PASS1,
Al Stone 3df7a9
+                Flags, WalkState, &Node);
Al Stone 3df7a9
+	/*
Al Stone 3df7a9
             Status = AcpiNsLookup (WalkState->ScopeInfo,
Al Stone 3df7a9
                 (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1,
Al Stone 3df7a9
                 Flags, WalkState, &Node);
Al Stone 3df7a9
+	*/
Al Stone 3df7a9
             if (ACPI_FAILURE (Status))
Al Stone 3df7a9
             {
Al Stone 3df7a9
                 ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status);
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/components/namespace/nsparse.c acpica-unix2-20160930-s390/source/components/namespace/nsparse.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/components/namespace/nsparse.c	2016-09-30 10:43:59.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/components/namespace/nsparse.c	2016-10-28 14:25:41.895397700 -0600
Al Stone 3df7a9
@@ -196,13 +196,14 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
     /* Table must consist of at least a complete header */
Al Stone 3df7a9
 
Al Stone 3df7a9
-    if (Table->Length < sizeof (ACPI_TABLE_HEADER))
Al Stone 3df7a9
+    ACPI_MOVE_32_TO_32(&AmlLength, &Table->Length);
Al Stone 3df7a9
+    if (AmlLength < sizeof (ACPI_TABLE_HEADER))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         return_ACPI_STATUS (AE_BAD_HEADER);
Al Stone 3df7a9
     }
Al Stone 3df7a9
 
Al Stone 3df7a9
     AmlStart = (UINT8 *) Table + sizeof (ACPI_TABLE_HEADER);
Al Stone 3df7a9
-    AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
Al Stone 3df7a9
+    AmlLength -= sizeof (ACPI_TABLE_HEADER);
Al Stone 3df7a9
 
Al Stone 3df7a9
     Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
Al Stone 3df7a9
     if (ACPI_FAILURE (Status))
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/components/tables/tbprint.c acpica-unix2-20160930-s390/source/components/tables/tbprint.c
Al Stone 3df7a9
--- acpica-unix2-20160930/source/components/tables/tbprint.c	2016-09-30 10:43:59.000000000 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/components/tables/tbprint.c	2016-10-28 14:25:41.902397665 -0600
Al Stone 3df7a9
@@ -143,15 +143,18 @@
Al Stone 3df7a9
     ACPI_TABLE_HEADER       *Header)
Al Stone 3df7a9
 {
Al Stone 3df7a9
     ACPI_TABLE_HEADER       LocalHeader;
Al Stone 3df7a9
+    UINT32		    Len;
Al Stone 3df7a9
+    UINT32		    OemRev;
Al Stone 3df7a9
+    UINT32		    CompilerRev;
Al Stone 3df7a9
 
Al Stone 3df7a9
 
Al Stone 3df7a9
     if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_FACS))
Al Stone 3df7a9
     {
Al Stone 3df7a9
         /* FACS only has signature and length fields */
Al Stone 3df7a9
 
Al Stone 3df7a9
+	ACPI_MOVE_32_TO_32(&Len, &Header->Length);
Al Stone 3df7a9
         ACPI_INFO (("%-4.4s 0x%8.8X%8.8X %06X",
Al Stone 3df7a9
-            Header->Signature, ACPI_FORMAT_UINT64 (Address),
Al Stone 3df7a9
-            Header->Length));
Al Stone 3df7a9
+            Header->Signature, ACPI_FORMAT_UINT64 (Address), Len));
Al Stone 3df7a9
     }
Al Stone 3df7a9
     else if (ACPI_VALIDATE_RSDP_SIG (Header->Signature))
Al Stone 3df7a9
     {
Al Stone 3df7a9
@@ -174,13 +177,16 @@
Al Stone 3df7a9
 
Al Stone 3df7a9
         AcpiTbCleanupTableHeader (&LocalHeader, Header);
Al Stone 3df7a9
 
Al Stone 3df7a9
+	ACPI_MOVE_32_TO_32(&Len, &LocalHeader.Length);
Al Stone 3df7a9
+	ACPI_MOVE_32_TO_32(&OemRev, &LocalHeader.OemRevision);
Al Stone 3df7a9
+	ACPI_MOVE_32_TO_32(&CompilerRev, &LocalHeader.AslCompilerRevision);
Al Stone 3df7a9
         ACPI_INFO ((
Al Stone 3df7a9
             "%-4.4s 0x%8.8X%8.8X"
Al Stone 3df7a9
             " %06X (v%.2d %-6.6s %-8.8s %08X %-4.4s %08X)",
Al Stone 3df7a9
             LocalHeader.Signature, ACPI_FORMAT_UINT64 (Address),
Al Stone 3df7a9
-            LocalHeader.Length, LocalHeader.Revision, LocalHeader.OemId,
Al Stone 3df7a9
-            LocalHeader.OemTableId, LocalHeader.OemRevision,
Al Stone 3df7a9
-            LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision));
Al Stone 3df7a9
+            Len, LocalHeader.Revision, LocalHeader.OemId,
Al Stone 3df7a9
+            LocalHeader.OemTableId, OemRev,
Al Stone 3df7a9
+            LocalHeader.AslCompilerId, CompilerRev));
Al Stone 3df7a9
     }
Al Stone 3df7a9
 }
Al Stone 3df7a9
 
Al Stone 3df7a9
diff -Naur acpica-unix2-20160930/source/include/platform/aclinux.h acpica-unix2-20160930-s390/source/include/platform/aclinux.h
Al Stone 3df7a9
--- acpica-unix2-20160930/source/include/platform/aclinux.h	2016-10-28 14:24:20.839813236 -0600
Al Stone 3df7a9
+++ acpica-unix2-20160930-s390/source/include/platform/aclinux.h	2016-10-28 14:25:41.909397629 -0600
Al Stone 3df7a9
@@ -210,6 +210,10 @@
Al Stone 3df7a9
 #define __cdecl
Al Stone 3df7a9
 #endif
Al Stone 3df7a9
 
Al Stone 3df7a9
+#if defined(__PPC64__) || defined(__s390x__)
Al Stone 3df7a9
+#define ACPI_BIG_ENDIAN
Al Stone 3df7a9
+#endif
Al Stone 3df7a9
+
Al Stone 3df7a9
 #endif /* __KERNEL__ */
Al Stone 3df7a9
 
Al Stone 3df7a9
 #endif /* __ACLINUX_H__ */