diff --git a/acpica-tools.spec b/acpica-tools.spec index 915272a..292ee0e 100644 --- a/acpica-tools.spec +++ b/acpica-tools.spec @@ -1,6 +1,6 @@ Name: acpica-tools Version: 20170728 -Release: 2%{?dist} +Release: 3%{?dist} Summary: ACPICA tools for the development and debug of ACPI tables Group: Development/Languages @@ -190,6 +190,11 @@ fi %changelog +* Fri Aug 18 2017 Al Stone - 20170728-3 +- Completed the big-endian fixes (I think) +- Fix ppc64le.patch that inadvertently broke s390x +- Minor patch refresh + * Mon Aug 14 2017 Al Stone - 20170728-2 - Start some long delayed clean-up - Temporarily disable one test section until all the big-endian issues diff --git a/big-endian.patch b/big-endian.patch index 483448f..b0988f7 100644 --- a/big-endian.patch +++ b/big-endian.patch @@ -1588,7 +1588,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c =================================================================== --- acpica-unix2-20170728.orig/source/compiler/aslrestype2s.c +++ acpica-unix2-20170728/source/compiler/aslrestype2s.c -@@ -340,6 +340,9 @@ RsDoGpioIntDescriptor ( +@@ -340,9 +340,14 @@ RsDoGpioIntDescriptor ( UINT16 VendorLength; UINT16 InterruptLength; UINT16 DescriptorSize; @@ -1598,7 +1598,37 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c UINT32 CurrentByteOffset; UINT32 PinCount = 0; UINT32 i; -@@ -396,21 +399,21 @@ RsDoGpioIntDescriptor ( ++ UINT16 Tmp16; ++ UINT16 Val16; + + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; +@@ -367,7 +372,7 @@ RsDoGpioIntDescriptor ( + sizeof (AML_RESOURCE_LARGE_HEADER)); + + Descriptor = Rnode->Buffer; +- Descriptor->Gpio.ResourceLength = DescriptorSize; ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResourceLength, &DescriptorSize); + Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; + Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; + Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_INT; +@@ -382,11 +387,11 @@ RsDoGpioIntDescriptor ( + + /* Setup offsets within the descriptor */ + +- Descriptor->Gpio.PinTableOffset = (UINT16) +- ACPI_PTR_DIFF (InterruptList, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (InterruptList, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.PinTableOffset, &Tmp16); + +- Descriptor->Gpio.ResSourceOffset = (UINT16) +- ACPI_PTR_DIFF (ResourceSource, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (ResourceSource, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResSourceOffset, &Tmp16); + + /* Process all child initialization nodes */ + +@@ -396,21 +401,21 @@ RsDoGpioIntDescriptor ( { case 0: /* Interrupt Mode - edge/level [Flag] (_MOD) */ @@ -1623,7 +1653,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE, CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 3, 2); break; -@@ -424,7 +427,7 @@ RsDoGpioIntDescriptor ( +@@ -424,7 +429,7 @@ RsDoGpioIntDescriptor ( case 4: /* Debounce Timeout [WORD] (_DBT) */ @@ -1632,7 +1662,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateWordField (InitializerOp, ACPI_RESTAG_DEBOUNCETIME, CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.DebounceTimeout)); break; -@@ -451,7 +454,7 @@ RsDoGpioIntDescriptor ( +@@ -451,7 +456,7 @@ RsDoGpioIntDescriptor ( case 7: /* Resource Usage (consumer/producer) */ @@ -1641,7 +1671,50 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c break; case 8: /* Resource Tag (Descriptor Name) */ -@@ -516,6 +519,10 @@ RsDoGpioIntDescriptor ( +@@ -466,13 +471,14 @@ RsDoGpioIntDescriptor ( + * This field is required in order to calculate the length + * of the ResourceSource at runtime. + */ +- Descriptor->Gpio.VendorOffset = (UINT16) +- ACPI_PTR_DIFF (VendorData, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (VendorData, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorOffset, &Tmp16); + + if (RsGetVendorData (InitializerOp, VendorData, +- (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) ++ (CurrentByteOffset + Tmp16))) + { +- Descriptor->Gpio.VendorLength = VendorLength; ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorLength, ++ &VendorLength); + } + break; + +@@ -485,7 +491,9 @@ RsDoGpioIntDescriptor ( + * (implies resource source must immediately follow the pin list.) + * Name: _PIN + */ +- *InterruptList = (UINT16) InitializerOp->Asl.Value.Integer; ++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer; ++ ACPI_MOVE_16_TO_16(&Val16, &Tmp16); ++ *InterruptList = Val16; + InterruptList++; + PinCount++; + +@@ -507,8 +515,10 @@ RsDoGpioIntDescriptor ( + + /* Create a named field at the start of the list */ + +- RsCreateWordField (InitializerOp, ACPI_RESTAG_PIN, +- CurrentByteOffset + Descriptor->Gpio.PinTableOffset); ++ ACPI_MOVE_16_TO_16(&Tmp16, &Descriptor->Gpio.PinTableOffset); ++ Tmp16 += CurrentByteOffset; ++ ACPI_MOVE_16_TO_16(&Val16, &Tmp16); ++ RsCreateWordField (InitializerOp, ACPI_RESTAG_PIN, Val16); + } + break; + } +@@ -516,6 +526,10 @@ RsDoGpioIntDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); } @@ -1652,7 +1725,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource); return (Rnode); -@@ -549,6 +556,10 @@ RsDoGpioIoDescriptor ( +@@ -549,9 +563,15 @@ RsDoGpioIoDescriptor ( UINT16 VendorLength; UINT16 InterruptLength; UINT16 DescriptorSize; @@ -1663,7 +1736,37 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c UINT32 CurrentByteOffset; UINT32 PinCount = 0; UINT32 i; -@@ -605,7 +616,7 @@ RsDoGpioIoDescriptor ( ++ UINT16 Tmp16; ++ UINT16 Val16; + + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; +@@ -577,7 +597,7 @@ RsDoGpioIoDescriptor ( + sizeof (AML_RESOURCE_LARGE_HEADER)); + + Descriptor = Rnode->Buffer; +- Descriptor->Gpio.ResourceLength = DescriptorSize; ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResourceLength, &DescriptorSize); + Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; + Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; + Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_IO; +@@ -591,11 +611,11 @@ RsDoGpioIoDescriptor ( + + /* Setup offsets within the descriptor */ + +- Descriptor->Gpio.PinTableOffset = (UINT16) +- ACPI_PTR_DIFF (InterruptList, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (InterruptList, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.PinTableOffset, &Tmp16); + +- Descriptor->Gpio.ResSourceOffset = (UINT16) +- ACPI_PTR_DIFF (ResourceSource, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (ResourceSource, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResSourceOffset, &Tmp16); + + /* Process all child initialization nodes */ + +@@ -605,7 +625,7 @@ RsDoGpioIoDescriptor ( { case 0: /* Share Type [Flags] (_SHR) */ @@ -1672,7 +1775,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE, CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 3); break; -@@ -619,21 +630,21 @@ RsDoGpioIoDescriptor ( +@@ -619,21 +639,21 @@ RsDoGpioIoDescriptor ( case 2: /* Debounce Timeout [WORD] (_DBT) */ @@ -1697,7 +1800,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_IORESTRICTION, CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 0, 2); break; -@@ -659,7 +670,7 @@ RsDoGpioIoDescriptor ( +@@ -659,7 +679,7 @@ RsDoGpioIoDescriptor ( case 7: /* Resource Usage (consumer/producer) */ @@ -1706,7 +1809,36 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c break; case 8: /* Resource Tag (Descriptor Name) */ -@@ -723,6 +734,11 @@ RsDoGpioIoDescriptor ( +@@ -673,13 +693,14 @@ RsDoGpioIoDescriptor ( + * This field is required in order to calculate the length + * of the ResourceSource at runtime. + */ +- Descriptor->Gpio.VendorOffset = (UINT16) +- ACPI_PTR_DIFF (VendorData, Descriptor); ++ Tmp16 = (UINT16) ACPI_PTR_DIFF (VendorData, Descriptor); ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorOffset, &Tmp16); + + if (RsGetVendorData (InitializerOp, VendorData, + (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) + { +- Descriptor->Gpio.VendorLength = VendorLength; ++ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorLength, ++ &VendorLength); + } + break; + +@@ -692,7 +713,9 @@ RsDoGpioIoDescriptor ( + * (implies resource source must immediately follow the pin list.) + * Name: _PIN + */ +- *InterruptList = (UINT16) InitializerOp->Asl.Value.Integer; ++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer; ++ ACPI_MOVE_16_TO_16(&Val16, &Tmp16); ++ *InterruptList = Val16; + InterruptList++; + PinCount++; + +@@ -723,6 +746,11 @@ RsDoGpioIoDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); } @@ -1718,7 +1850,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource); return (Rnode); -@@ -753,6 +769,9 @@ RsDoI2cSerialBusDescriptor ( +@@ -753,8 +781,12 @@ RsDoI2cSerialBusDescriptor ( UINT16 ResSourceLength; UINT16 VendorLength; UINT16 DescriptorSize; @@ -1727,8 +1859,28 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c + UINT16 TypeSpecificFlags = 0; UINT32 CurrentByteOffset; UINT32 i; ++ UINT16 Tmp16; + + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; +@@ -777,12 +809,14 @@ RsDoI2cSerialBusDescriptor ( + sizeof (AML_RESOURCE_LARGE_HEADER)); -@@ -802,7 +821,7 @@ RsDoI2cSerialBusDescriptor ( + Descriptor = Rnode->Buffer; +- Descriptor->I2cSerialBus.ResourceLength = DescriptorSize; ++ ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.ResourceLength, ++ &DescriptorSize); + Descriptor->I2cSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; + Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION; + Descriptor->I2cSerialBus.TypeRevisionId = AML_RESOURCE_I2C_TYPE_REVISION; + Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE; +- Descriptor->I2cSerialBus.TypeDataLength = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength; ++ Tmp16 = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength; ++ ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.TypeDataLength, &Tmp16); + + if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_I2C_SERIALBUS_V2) + { +@@ -802,7 +836,7 @@ RsDoI2cSerialBusDescriptor ( { case 0: /* Slave Address [WORD] (_ADR) */ @@ -1737,7 +1889,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS, CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.SlaveAddress)); break; -@@ -816,14 +835,14 @@ RsDoI2cSerialBusDescriptor ( +@@ -816,14 +850,14 @@ RsDoI2cSerialBusDescriptor ( case 2: /* Connection Speed [DWORD] (_SPE) */ @@ -1754,7 +1906,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE, CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.TypeSpecificFlags), 0); break; -@@ -883,6 +902,9 @@ RsDoI2cSerialBusDescriptor ( +@@ -883,6 +917,9 @@ RsDoI2cSerialBusDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); } @@ -1764,7 +1916,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource); return (Rnode); } -@@ -912,6 +934,9 @@ RsDoSpiSerialBusDescriptor ( +@@ -912,6 +949,9 @@ RsDoSpiSerialBusDescriptor ( UINT16 ResSourceLength; UINT16 VendorLength; UINT16 DescriptorSize; @@ -1774,7 +1926,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c UINT32 CurrentByteOffset; UINT32 i; -@@ -962,21 +987,21 @@ RsDoSpiSerialBusDescriptor ( +@@ -962,21 +1002,21 @@ RsDoSpiSerialBusDescriptor ( { case 0: /* Device Selection [WORD] (_ADR) */ @@ -1799,7 +1951,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE, CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.TypeSpecificFlags), 0); break; -@@ -997,7 +1022,7 @@ RsDoSpiSerialBusDescriptor ( +@@ -997,7 +1037,7 @@ RsDoSpiSerialBusDescriptor ( case 5: /* Connection Speed [DWORD] (_SPE) */ @@ -1808,7 +1960,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED, CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.ConnectionSpeed)); break; -@@ -1071,6 +1096,10 @@ RsDoSpiSerialBusDescriptor ( +@@ -1071,6 +1111,10 @@ RsDoSpiSerialBusDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); } @@ -1819,7 +1971,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource); return (Rnode); } -@@ -1100,6 +1129,10 @@ RsDoUartSerialBusDescriptor ( +@@ -1100,6 +1144,10 @@ RsDoUartSerialBusDescriptor ( UINT16 ResSourceLength; UINT16 VendorLength; UINT16 DescriptorSize; @@ -1830,7 +1982,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c UINT32 CurrentByteOffset; UINT32 i; -@@ -1149,21 +1182,21 @@ RsDoUartSerialBusDescriptor ( +@@ -1149,21 +1197,21 @@ RsDoUartSerialBusDescriptor ( { case 0: /* Connection Speed (Baud Rate) [DWORD] (_SPE) */ @@ -1855,7 +2007,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_STOPBITS, CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 2, 2); break; -@@ -1177,7 +1210,7 @@ RsDoUartSerialBusDescriptor ( +@@ -1177,7 +1225,7 @@ RsDoUartSerialBusDescriptor ( case 4: /* Endianness [Flag] (_END) */ @@ -1864,7 +2016,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateBitField (InitializerOp, ACPI_RESTAG_ENDIANNESS, CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 7); break; -@@ -1191,21 +1224,21 @@ RsDoUartSerialBusDescriptor ( +@@ -1191,21 +1239,21 @@ RsDoUartSerialBusDescriptor ( case 6: /* Flow Control [Flags] (_FLC) */ @@ -1889,7 +2041,7 @@ Index: acpica-unix2-20170728/source/compiler/aslrestype2s.c RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_TX, CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TxFifoSize)); break; -@@ -1275,6 +1308,11 @@ RsDoUartSerialBusDescriptor ( +@@ -1275,6 +1323,11 @@ RsDoUartSerialBusDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); } @@ -2724,7 +2876,115 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Offset += sizeof (UINT64); } } -@@ -524,17 +532,21 @@ AcpiDmDumpAsf ( +@@ -358,12 +366,12 @@ AcpiDmDumpFadt ( + ACPI_TABLE_HEADER *Table) + { + ACPI_STATUS Status; +- ++ UINT32 Length; + + /* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */ + +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, +- AcpiDmTableInfoFadt1); ++ ACPI_MOVE_32_TO_32(&Length, &Table->Length); ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt1); + if (ACPI_FAILURE (Status)) + { + return; +@@ -371,11 +379,9 @@ AcpiDmDumpFadt ( + + /* Check for FADT revision 2 fields (ACPI 1.0B MS extensions) */ + +- if ((Table->Length > ACPI_FADT_V1_SIZE) && +- (Table->Length <= ACPI_FADT_V2_SIZE)) ++ if ((Length > ACPI_FADT_V1_SIZE) && (Length <= ACPI_FADT_V2_SIZE)) + { +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, +- AcpiDmTableInfoFadt2); ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt2); + if (ACPI_FAILURE (Status)) + { + return; +@@ -384,10 +390,9 @@ AcpiDmDumpFadt ( + + /* Check for FADT revision 3/4 fields and up (ACPI 2.0+ extended data) */ + +- else if (Table->Length > ACPI_FADT_V2_SIZE) ++ else if (Length > ACPI_FADT_V2_SIZE) + { +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, +- AcpiDmTableInfoFadt3); ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt3); + if (ACPI_FAILURE (Status)) + { + return; +@@ -395,9 +400,9 @@ AcpiDmDumpFadt ( + + /* Check for FADT revision 5 fields and up (ACPI 5.0+) */ + +- if (Table->Length > ACPI_FADT_V3_SIZE) ++ if (Length > ACPI_FADT_V3_SIZE) + { +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, + AcpiDmTableInfoFadt5); + if (ACPI_FAILURE (Status)) + { +@@ -407,9 +412,9 @@ AcpiDmDumpFadt ( + + /* Check for FADT revision 6 fields and up (ACPI 6.0+) */ + +- if (Table->Length > ACPI_FADT_V3_SIZE) ++ if (Length > ACPI_FADT_V3_SIZE) + { +- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, ++ Status = AcpiDmDumpTable (Length, 0, Table, 0, + AcpiDmTableInfoFadt6); + if (ACPI_FAILURE (Status)) + { +@@ -420,11 +425,11 @@ AcpiDmDumpFadt ( + + /* Validate various fields in the FADT, including length */ + +- AcpiTbCreateLocalFadt (Table, Table->Length); ++ AcpiTbCreateLocalFadt (Table, Length); + + /* Validate FADT length against the revision */ + +- AcpiDmValidateFadtLength (Table->Revision, Table->Length); ++ AcpiDmValidateFadtLength (Table->Revision, Length); + } + + +@@ -450,6 +455,7 @@ AcpiDmValidateFadtLength ( + UINT32 Length) + { + UINT32 ExpectedLength; ++ UINT32 Tmp32; + + + switch (Revision) +@@ -485,7 +491,8 @@ AcpiDmValidateFadtLength ( + return; + } + +- if (Length == ExpectedLength) ++ ACPI_MOVE_32_TO_32(&Tmp32, &Length); ++ if (Tmp32 == ExpectedLength) + { + return; + } +@@ -493,7 +500,7 @@ AcpiDmValidateFadtLength ( + AcpiOsPrintf ( + "\n// ACPI Warning: FADT revision %X does not match length: " + "found %X expected %X\n", +- Revision, Length, ExpectedLength); ++ Revision, Tmp32, ExpectedLength); + } + + +@@ -524,17 +531,21 @@ AcpiDmDumpAsf ( UINT32 DataOffset = 0; UINT32 i; UINT8 Type; @@ -2749,7 +3009,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -591,8 +603,7 @@ AcpiDmDumpAsf ( +@@ -591,8 +602,7 @@ AcpiDmDumpAsf ( return; } @@ -2759,7 +3019,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -608,7 +619,7 @@ AcpiDmDumpAsf ( +@@ -608,7 +618,7 @@ AcpiDmDumpAsf ( for (i = 0; i < DataCount; i++) { AcpiOsPrintf ("\n"); @@ -2768,7 +3028,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DataTable, DataLength, DataInfoTable); if (ACPI_FAILURE (Status)) { -@@ -654,15 +665,14 @@ AcpiDmDumpAsf ( +@@ -654,15 +664,14 @@ AcpiDmDumpAsf ( /* Point to next subtable */ @@ -2787,7 +3047,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } } -@@ -686,12 +696,13 @@ AcpiDmDumpCpep ( +@@ -686,12 +695,13 @@ AcpiDmDumpCpep ( { ACPI_STATUS Status; ACPI_CPEP_POLLING *SubTable; @@ -2802,7 +3062,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoCpep); if (ACPI_FAILURE (Status)) { -@@ -701,7 +712,7 @@ AcpiDmDumpCpep ( +@@ -701,7 +711,7 @@ AcpiDmDumpCpep ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset); @@ -2811,7 +3071,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -741,7 +752,10 @@ AcpiDmDumpCsrt ( +@@ -741,7 +751,10 @@ AcpiDmDumpCsrt ( ACPI_CSRT_GROUP *SubTable; ACPI_CSRT_SHARED_INFO *SharedInfoTable; ACPI_CSRT_DESCRIPTOR *SubSubTable; @@ -2823,7 +3083,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c UINT32 Offset = sizeof (ACPI_TABLE_CSRT); UINT32 SubOffset; UINT32 SubSubOffset; -@@ -752,14 +766,16 @@ AcpiDmDumpCsrt ( +@@ -752,14 +765,16 @@ AcpiDmDumpCsrt ( /* Subtables (Resource Groups) */ @@ -2842,7 +3102,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -779,19 +795,20 @@ AcpiDmDumpCsrt ( +@@ -779,19 +794,20 @@ AcpiDmDumpCsrt ( return; } @@ -2867,7 +3127,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -801,7 +818,7 @@ AcpiDmDumpCsrt ( +@@ -801,7 +817,7 @@ AcpiDmDumpCsrt ( /* Resource-specific info buffer */ @@ -2876,7 +3136,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (InfoLength) { Status = AcpiDmDumpTable (Length, -@@ -816,16 +833,15 @@ AcpiDmDumpCsrt ( +@@ -816,16 +832,15 @@ AcpiDmDumpCsrt ( /* Point to next sub-subtable */ @@ -2897,7 +3157,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } } -@@ -849,16 +865,20 @@ AcpiDmDumpDbg2 ( +@@ -849,16 +864,20 @@ AcpiDmDumpDbg2 ( { ACPI_STATUS Status; ACPI_DBG2_DEVICE *SubTable; @@ -2919,7 +3179,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDbg2); if (ACPI_FAILURE (Status)) { -@@ -868,11 +888,12 @@ AcpiDmDumpDbg2 ( +@@ -868,11 +887,12 @@ AcpiDmDumpDbg2 ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Table, Offset); @@ -2934,7 +3194,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -882,13 +903,13 @@ AcpiDmDumpDbg2 ( +@@ -882,13 +902,13 @@ AcpiDmDumpDbg2 ( for (i = 0; i < SubTable->RegisterCount; i++) { @@ -2951,7 +3211,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -899,13 +920,13 @@ AcpiDmDumpDbg2 ( +@@ -899,13 +919,13 @@ AcpiDmDumpDbg2 ( for (i = 0; i < SubTable->RegisterCount; i++) { @@ -2968,7 +3228,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -915,12 +936,13 @@ AcpiDmDumpDbg2 ( +@@ -915,12 +935,13 @@ AcpiDmDumpDbg2 ( /* Dump the Namestring (required) */ AcpiOsPrintf ("\n"); @@ -2984,7 +3244,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -930,9 +952,10 @@ AcpiDmDumpDbg2 ( +@@ -930,9 +951,10 @@ AcpiDmDumpDbg2 ( if (SubTable->OemDataOffset) { @@ -2998,7 +3258,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -941,9 +964,9 @@ AcpiDmDumpDbg2 ( +@@ -941,9 +963,9 @@ AcpiDmDumpDbg2 ( /* Point to next subtable */ @@ -3010,7 +3270,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } } -@@ -967,17 +990,20 @@ AcpiDmDumpDmar ( +@@ -967,17 +989,20 @@ AcpiDmDumpDmar ( { ACPI_STATUS Status; ACPI_DMAR_HEADER *SubTable; @@ -3032,7 +3292,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDmar); if (ACPI_FAILURE (Status)) { -@@ -987,13 +1013,14 @@ AcpiDmDumpDmar ( +@@ -987,13 +1012,14 @@ AcpiDmDumpDmar ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset); @@ -3049,7 +3309,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1001,7 +1028,8 @@ AcpiDmDumpDmar ( +@@ -1001,7 +1027,8 @@ AcpiDmDumpDmar ( AcpiOsPrintf ("\n"); @@ -3059,7 +3319,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_DMAR_TYPE_HARDWARE_UNIT: -@@ -1036,12 +1064,12 @@ AcpiDmDumpDmar ( +@@ -1036,12 +1063,12 @@ AcpiDmDumpDmar ( default: AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n", @@ -3074,7 +3334,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1050,8 +1078,8 @@ AcpiDmDumpDmar ( +@@ -1050,8 +1077,8 @@ AcpiDmDumpDmar ( /* * Dump the optional device scope entries */ @@ -3085,7 +3345,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* These types do not support device scopes */ -@@ -1059,7 +1087,7 @@ AcpiDmDumpDmar ( +@@ -1059,7 +1086,7 @@ AcpiDmDumpDmar ( } ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, SubTable, ScopeOffset); @@ -3094,7 +3354,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable, -@@ -1100,9 +1128,8 @@ AcpiDmDumpDmar ( +@@ -1100,9 +1127,8 @@ AcpiDmDumpDmar ( NextSubtable: /* Point to next subtable */ @@ -3106,7 +3366,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } } -@@ -1129,12 +1156,15 @@ AcpiDmDumpDrtm ( +@@ -1129,12 +1155,15 @@ AcpiDmDumpDrtm ( ACPI_DRTM_RESOURCE_LIST *DrtmRl; ACPI_DRTM_DPS_ID *DrtmDps; UINT32 Count; @@ -3124,7 +3384,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1148,7 +1178,7 @@ AcpiDmDumpDrtm ( +@@ -1148,7 +1177,7 @@ AcpiDmDumpDrtm ( DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset); AcpiOsPrintf ("\n"); @@ -3133,7 +3393,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables), AcpiDmTableInfoDrtm0); if (ACPI_FAILURE (Status)) -@@ -1161,10 +1191,11 @@ AcpiDmDumpDrtm ( +@@ -1161,10 +1190,11 @@ AcpiDmDumpDrtm ( /* Dump Validated table addresses */ Count = 0; @@ -3148,7 +3408,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64), AcpiDmTableInfoDrtm0a); if (ACPI_FAILURE (Status)) -@@ -1180,7 +1211,7 @@ AcpiDmDumpDrtm ( +@@ -1180,7 +1210,7 @@ AcpiDmDumpDrtm ( DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset); AcpiOsPrintf ("\n"); @@ -3157,7 +3417,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources), AcpiDmTableInfoDrtm1); if (ACPI_FAILURE (Status)) -@@ -1193,10 +1224,11 @@ AcpiDmDumpDrtm ( +@@ -1193,10 +1223,11 @@ AcpiDmDumpDrtm ( /* Dump the Resource List */ Count = 0; @@ -3172,7 +3432,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (void, Table, Offset), sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a); if (ACPI_FAILURE (Status)) -@@ -1212,7 +1244,7 @@ AcpiDmDumpDrtm ( +@@ -1212,7 +1243,7 @@ AcpiDmDumpDrtm ( DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset); AcpiOsPrintf ("\n"); @@ -3181,7 +3441,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2); } -@@ -1236,12 +1268,13 @@ AcpiDmDumpEinj ( +@@ -1236,12 +1267,13 @@ AcpiDmDumpEinj ( { ACPI_STATUS Status; ACPI_WHEA_HEADER *SubTable; @@ -3196,7 +3456,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoEinj); if (ACPI_FAILURE (Status)) { -@@ -1251,7 +1284,7 @@ AcpiDmDumpEinj ( +@@ -1251,7 +1283,7 @@ AcpiDmDumpEinj ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset); @@ -3205,7 +3465,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -1289,12 +1322,13 @@ AcpiDmDumpErst ( +@@ -1289,12 +1321,13 @@ AcpiDmDumpErst ( { ACPI_STATUS Status; ACPI_WHEA_HEADER *SubTable; @@ -3220,7 +3480,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoErst); if (ACPI_FAILURE (Status)) { -@@ -1304,7 +1338,7 @@ AcpiDmDumpErst ( +@@ -1304,7 +1337,7 @@ AcpiDmDumpErst ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset); @@ -3229,7 +3489,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, -@@ -1342,17 +1376,19 @@ AcpiDmDumpFpdt ( +@@ -1342,17 +1375,19 @@ AcpiDmDumpFpdt ( { ACPI_STATUS Status; ACPI_FPDT_HEADER *SubTable; @@ -3251,7 +3511,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */ -@@ -1364,7 +1400,8 @@ AcpiDmDumpFpdt ( +@@ -1364,7 +1399,8 @@ AcpiDmDumpFpdt ( return; } @@ -3261,7 +3521,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_FPDT_TYPE_BOOT: -@@ -1378,8 +1415,7 @@ AcpiDmDumpFpdt ( +@@ -1378,8 +1414,7 @@ AcpiDmDumpFpdt ( default: @@ -3271,7 +3531,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c /* Attempt to continue */ -@@ -1427,16 +1463,19 @@ AcpiDmDumpGtdt ( +@@ -1427,16 +1462,19 @@ AcpiDmDumpGtdt ( { ACPI_STATUS Status; ACPI_GTDT_HEADER *SubTable; @@ -3292,7 +3552,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoGtdt); if (ACPI_FAILURE (Status)) { -@@ -1446,7 +1485,7 @@ AcpiDmDumpGtdt ( +@@ -1446,7 +1484,7 @@ AcpiDmDumpGtdt ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_GTDT_HEADER, Table, Offset); @@ -3301,7 +3561,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */ -@@ -1464,8 +1503,9 @@ AcpiDmDumpGtdt ( +@@ -1464,8 +1502,9 @@ AcpiDmDumpGtdt ( case ACPI_GTDT_TYPE_TIMER_BLOCK: SubTableLength = sizeof (ACPI_GTDT_TIMER_BLOCK); @@ -3312,7 +3572,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c InfoTable = AcpiDmTableInfoGtdt0; break; -@@ -1486,8 +1526,9 @@ AcpiDmDumpGtdt ( +@@ -1486,8 +1525,9 @@ AcpiDmDumpGtdt ( return; } @@ -3323,7 +3583,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1546,16 +1587,18 @@ AcpiDmDumpHest ( +@@ -1546,16 +1586,18 @@ AcpiDmDumpHest ( { ACPI_STATUS Status; ACPI_HEST_HEADER *SubTable; @@ -3343,7 +3603,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHest); if (ACPI_FAILURE (Status)) { -@@ -1565,10 +1608,11 @@ AcpiDmDumpHest ( +@@ -1565,10 +1607,11 @@ AcpiDmDumpHest ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset); @@ -3357,7 +3617,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_HEST_TYPE_IA32_CHECK: -@@ -1902,15 +1946,21 @@ AcpiDmDumpIort ( +@@ -1902,15 +1945,21 @@ AcpiDmDumpIort ( ACPI_IORT_SMMU *IortSmmu = NULL; UINT32 Offset; UINT32 NodeOffset; @@ -3381,7 +3641,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -1921,18 +1971,19 @@ AcpiDmDumpIort ( +@@ -1921,18 +1970,19 @@ AcpiDmDumpIort ( /* Dump the OptionalPadding (optional) */ @@ -3406,7 +3666,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */ -@@ -1968,7 +2019,8 @@ AcpiDmDumpIort ( +@@ -1968,7 +2018,8 @@ AcpiDmDumpIort ( case ACPI_IORT_NODE_PCI_ROOT_COMPLEX: InfoTable = AcpiDmTableInfoIort2; @@ -3416,7 +3676,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c break; case ACPI_IORT_NODE_SMMU: -@@ -1981,7 +2033,8 @@ AcpiDmDumpIort ( +@@ -1981,7 +2032,8 @@ AcpiDmDumpIort ( case ACPI_IORT_NODE_SMMU_V3: InfoTable = AcpiDmTableInfoIort4; @@ -3426,7 +3686,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c break; default: -@@ -1991,7 +2044,8 @@ AcpiDmDumpIort ( +@@ -1991,7 +2043,8 @@ AcpiDmDumpIort ( /* Attempt to continue */ @@ -3436,7 +3696,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("Invalid zero length IORT node\n"); return; -@@ -2002,7 +2056,7 @@ AcpiDmDumpIort ( +@@ -2002,7 +2055,7 @@ AcpiDmDumpIort ( /* Dump the node subtable header */ AcpiOsPrintf ("\n"); @@ -3445,7 +3705,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), Length, InfoTable); if (ACPI_FAILURE (Status)) -@@ -2022,9 +2076,10 @@ AcpiDmDumpIort ( +@@ -2022,9 +2075,10 @@ AcpiDmDumpIort ( if (IortItsGroup) { @@ -3458,7 +3718,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), 4, AcpiDmTableInfoIort0a); NodeOffset += 4; -@@ -2036,11 +2091,11 @@ AcpiDmDumpIort ( +@@ -2036,11 +2090,11 @@ AcpiDmDumpIort ( /* Dump the Padding (optional) */ @@ -3474,7 +3734,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2057,8 +2112,8 @@ AcpiDmDumpIort ( +@@ -2057,8 +2111,8 @@ AcpiDmDumpIort ( if (IortSmmu) { Length = 2 * sizeof (UINT64); @@ -3485,7 +3745,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), Length, AcpiDmTableInfoIort3a); if (ACPI_FAILURE (Status)) -@@ -2066,10 +2121,11 @@ AcpiDmDumpIort ( +@@ -2066,10 +2120,11 @@ AcpiDmDumpIort ( return; } @@ -3500,7 +3760,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), 8, AcpiDmTableInfoIort3b); if (ACPI_FAILURE (Status)) -@@ -2080,10 +2136,11 @@ AcpiDmDumpIort ( +@@ -2080,10 +2135,11 @@ AcpiDmDumpIort ( NodeOffset += 8; } @@ -3515,7 +3775,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), 8, AcpiDmTableInfoIort3c); if (ACPI_FAILURE (Status)) -@@ -2103,12 +2160,13 @@ AcpiDmDumpIort ( +@@ -2103,12 +2159,13 @@ AcpiDmDumpIort ( /* Dump the ID mappings */ @@ -3532,7 +3792,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), Length, AcpiDmTableInfoIortMap); if (ACPI_FAILURE (Status)) -@@ -2122,8 +2180,9 @@ AcpiDmDumpIort ( +@@ -2122,8 +2179,9 @@ AcpiDmDumpIort ( NextSubTable: /* Point to next node subtable */ @@ -3544,7 +3804,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } } -@@ -2154,11 +2213,14 @@ AcpiDmDumpIvrs ( +@@ -2154,11 +2212,14 @@ AcpiDmDumpIvrs ( ACPI_IVRS_DE_HEADER *DeviceEntry; ACPI_IVRS_HEADER *SubTable; ACPI_DMTABLE_INFO *InfoTable; @@ -3560,7 +3820,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2167,13 +2229,14 @@ AcpiDmDumpIvrs ( +@@ -2167,13 +2228,14 @@ AcpiDmDumpIvrs ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset); @@ -3578,7 +3838,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2200,7 +2263,7 @@ AcpiDmDumpIvrs ( +@@ -2200,7 +2262,7 @@ AcpiDmDumpIvrs ( /* Attempt to continue */ @@ -3587,7 +3847,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("Invalid zero length subtable\n"); return; -@@ -2211,8 +2274,8 @@ AcpiDmDumpIvrs ( +@@ -2211,8 +2273,8 @@ AcpiDmDumpIvrs ( /* Dump the subtable */ AcpiOsPrintf ("\n"); @@ -3598,7 +3858,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2226,7 +2289,7 @@ AcpiDmDumpIvrs ( +@@ -2226,7 +2288,7 @@ AcpiDmDumpIvrs ( DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, SubTable, sizeof (ACPI_IVRS_HARDWARE)); @@ -3607,7 +3867,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("\n"); /* -@@ -2288,7 +2351,7 @@ AcpiDmDumpIvrs ( +@@ -2288,7 +2350,7 @@ AcpiDmDumpIvrs ( /* Dump the Device Entry */ @@ -3616,7 +3876,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DeviceEntry, EntryLength, InfoTable); if (ACPI_FAILURE (Status)) { -@@ -2304,8 +2367,8 @@ AcpiDmDumpIvrs ( +@@ -2304,8 +2366,8 @@ AcpiDmDumpIvrs ( NextSubTable: /* Point to next subtable */ @@ -3627,7 +3887,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } } -@@ -2331,7 +2394,7 @@ AcpiDmDumpLpit ( +@@ -2331,7 +2393,7 @@ AcpiDmDumpLpit ( { ACPI_STATUS Status; ACPI_LPIT_HEADER *SubTable; @@ -3636,7 +3896,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c UINT32 Offset = sizeof (ACPI_TABLE_LPIT); ACPI_DMTABLE_INFO *InfoTable; UINT32 SubTableLength; -@@ -2339,8 +2402,9 @@ AcpiDmDumpLpit ( +@@ -2339,8 +2401,9 @@ AcpiDmDumpLpit ( /* Subtables */ @@ -3647,7 +3907,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */ -@@ -2404,13 +2468,14 @@ AcpiDmDumpMadt ( +@@ -2404,13 +2467,14 @@ AcpiDmDumpMadt ( { ACPI_STATUS Status; ACPI_SUBTABLE_HEADER *SubTable; @@ -3663,7 +3923,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMadt); if (ACPI_FAILURE (Status)) { -@@ -2420,7 +2485,7 @@ AcpiDmDumpMadt ( +@@ -2420,7 +2484,7 @@ AcpiDmDumpMadt ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset); @@ -3672,7 +3932,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */ -@@ -2566,11 +2631,13 @@ AcpiDmDumpMcfg ( +@@ -2566,11 +2630,13 @@ AcpiDmDumpMcfg ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_MCFG); ACPI_MCFG_ALLOCATION *SubTable; @@ -3687,7 +3947,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2579,17 +2646,17 @@ AcpiDmDumpMcfg ( +@@ -2579,17 +2645,17 @@ AcpiDmDumpMcfg ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset); @@ -3709,7 +3969,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0); if (ACPI_FAILURE (Status)) { -@@ -2623,6 +2690,7 @@ AcpiDmDumpMpst ( +@@ -2623,6 +2689,7 @@ AcpiDmDumpMpst ( { ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_MPST); @@ -3717,7 +3977,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c ACPI_MPST_POWER_NODE *SubTable0; ACPI_MPST_POWER_STATE *SubTable0A; ACPI_MPST_COMPONENT *SubTable0B; -@@ -2631,11 +2699,13 @@ AcpiDmDumpMpst ( +@@ -2631,11 +2698,13 @@ AcpiDmDumpMpst ( UINT16 SubtableCount; UINT32 PowerStateCount; UINT32 ComponentCount; @@ -3732,7 +3992,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2643,13 +2713,14 @@ AcpiDmDumpMpst ( +@@ -2643,13 +2712,14 @@ AcpiDmDumpMpst ( /* Subtable: Memory Power Node(s) */ @@ -3750,7 +4010,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0); if (ACPI_FAILURE (Status)) { -@@ -2658,8 +2729,8 @@ AcpiDmDumpMpst ( +@@ -2658,8 +2728,8 @@ AcpiDmDumpMpst ( /* Extract the sub-subtable counts */ @@ -3761,7 +4021,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Offset += sizeof (ACPI_MPST_POWER_NODE); /* Sub-subtables - Memory Power State Structure(s) */ -@@ -2670,7 +2741,7 @@ AcpiDmDumpMpst ( +@@ -2670,7 +2740,7 @@ AcpiDmDumpMpst ( while (PowerStateCount) { AcpiOsPrintf ("\n"); @@ -3770,7 +4030,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A); if (ACPI_FAILURE (Status)) { -@@ -2680,7 +2751,7 @@ AcpiDmDumpMpst ( +@@ -2680,7 +2750,7 @@ AcpiDmDumpMpst ( SubTable0A++; PowerStateCount--; Offset += sizeof (ACPI_MPST_POWER_STATE); @@ -3779,7 +4039,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c /* Sub-subtables - Physical Component ID Structure(s) */ -@@ -2693,7 +2764,7 @@ AcpiDmDumpMpst ( +@@ -2693,7 +2763,7 @@ AcpiDmDumpMpst ( while (ComponentCount) { @@ -3788,7 +4048,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B); if (ACPI_FAILURE (Status)) { -@@ -2708,17 +2779,19 @@ AcpiDmDumpMpst ( +@@ -2708,17 +2778,19 @@ AcpiDmDumpMpst ( /* Point to next Memory Power Node subtable */ SubtableCount--; @@ -3811,7 +4071,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1); if (ACPI_FAILURE (Status)) { -@@ -2733,10 +2806,10 @@ AcpiDmDumpMpst ( +@@ -2733,10 +2805,10 @@ AcpiDmDumpMpst ( SubTable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, SubTable1, sizeof (ACPI_MPST_DATA_HDR)); @@ -3824,7 +4084,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2); if (ACPI_FAILURE (Status)) { -@@ -2769,11 +2842,13 @@ AcpiDmDumpMsct ( +@@ -2769,11 +2841,13 @@ AcpiDmDumpMsct ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_MSCT); ACPI_MSCT_PROXIMITY *SubTable; @@ -3839,7 +4099,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2782,12 +2857,12 @@ AcpiDmDumpMsct ( +@@ -2782,12 +2856,12 @@ AcpiDmDumpMsct ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, Table, Offset); @@ -3854,7 +4114,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0); if (ACPI_FAILURE (Status)) { -@@ -2822,11 +2897,13 @@ AcpiDmDumpMtmr ( +@@ -2822,11 +2896,13 @@ AcpiDmDumpMtmr ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_MTMR); ACPI_MTMR_ENTRY *SubTable; @@ -3869,7 +4129,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2835,12 +2912,12 @@ AcpiDmDumpMtmr ( +@@ -2835,12 +2911,12 @@ AcpiDmDumpMtmr ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset); @@ -3884,7 +4144,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0); if (ACPI_FAILURE (Status)) { -@@ -2882,11 +2959,17 @@ AcpiDmDumpNfit ( +@@ -2882,11 +2958,17 @@ AcpiDmDumpNfit ( ACPI_NFIT_SMBIOS *SmbiosInfo = NULL; ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL; UINT32 i; @@ -3903,7 +4163,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2895,19 +2978,21 @@ AcpiDmDumpNfit ( +@@ -2895,19 +2977,21 @@ AcpiDmDumpNfit ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Table, Offset); @@ -3929,7 +4189,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_NFIT_TYPE_SYSTEM_ADDRESS: -@@ -2959,7 +3044,7 @@ AcpiDmDumpNfit ( +@@ -2959,7 +3043,7 @@ AcpiDmDumpNfit ( /* Attempt to continue */ @@ -3938,7 +4198,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ("Invalid zero length subtable\n"); return; -@@ -2968,8 +3053,8 @@ AcpiDmDumpNfit ( +@@ -2968,8 +3052,8 @@ AcpiDmDumpNfit ( } AcpiOsPrintf ("\n"); @@ -3949,7 +4209,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -2977,13 +3062,14 @@ AcpiDmDumpNfit ( +@@ -2977,13 +3061,14 @@ AcpiDmDumpNfit ( /* Per-subtable variable-length fields */ @@ -3967,7 +4227,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c &Interleave->LineOffset[i], sizeof (UINT32), AcpiDmTableInfoNfit2a); if (ACPI_FAILURE (Status)) -@@ -2997,12 +3083,11 @@ AcpiDmDumpNfit ( +@@ -2997,12 +3082,11 @@ AcpiDmDumpNfit ( case ACPI_NFIT_TYPE_SMBIOS: @@ -3982,7 +4242,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), SmbiosInfo, Length, AcpiDmTableInfoNfit3a); -@@ -3016,9 +3101,10 @@ AcpiDmDumpNfit ( +@@ -3016,9 +3100,10 @@ AcpiDmDumpNfit ( case ACPI_NFIT_TYPE_FLUSH_ADDRESS: @@ -3995,7 +4255,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c &Hint->HintAddress[i], sizeof (UINT64), AcpiDmTableInfoNfit6a); if (ACPI_FAILURE (Status)) -@@ -3037,8 +3123,8 @@ AcpiDmDumpNfit ( +@@ -3037,8 +3122,8 @@ AcpiDmDumpNfit ( NextSubTable: /* Point to next subtable */ @@ -4006,7 +4266,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } } -@@ -3063,12 +3149,13 @@ AcpiDmDumpPcct ( +@@ -3063,12 +3148,13 @@ AcpiDmDumpPcct ( ACPI_STATUS Status; ACPI_PCCT_SUBSPACE *SubTable; ACPI_DMTABLE_INFO *InfoTable; @@ -4021,7 +4281,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPcct); if (ACPI_FAILURE (Status)) { -@@ -3078,7 +3165,7 @@ AcpiDmDumpPcct ( +@@ -3078,7 +3164,7 @@ AcpiDmDumpPcct ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, Table, Offset); @@ -4030,7 +4290,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { /* Common subtable header */ -@@ -3164,16 +3251,21 @@ AcpiDmDumpPmtt ( +@@ -3164,16 +3250,21 @@ AcpiDmDumpPmtt ( ACPI_PMTT_HEADER *MemSubTable; ACPI_PMTT_HEADER *DimmSubTable; ACPI_PMTT_DOMAIN *DomainArray; @@ -4054,7 +4314,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPmtt); if (ACPI_FAILURE (Status)) { -@@ -3183,13 +3275,14 @@ AcpiDmDumpPmtt ( +@@ -3183,13 +3274,14 @@ AcpiDmDumpPmtt ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Table, Offset); @@ -4071,7 +4331,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3208,7 +3301,7 @@ AcpiDmDumpPmtt ( +@@ -3208,7 +3300,7 @@ AcpiDmDumpPmtt ( /* Dump the fixed-length portion of the subtable */ Status = AcpiDmDumpTable (Length, Offset, SubTable, @@ -4080,7 +4340,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3220,15 +3313,16 @@ AcpiDmDumpPmtt ( +@@ -3220,15 +3312,16 @@ AcpiDmDumpPmtt ( MemSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, SubTable, sizeof (ACPI_PMTT_SOCKET)); @@ -4100,7 +4360,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3248,7 +3342,7 @@ AcpiDmDumpPmtt ( +@@ -3248,7 +3341,7 @@ AcpiDmDumpPmtt ( Status = AcpiDmDumpTable (Length, Offset + MemOffset, MemSubTable, @@ -4109,7 +4369,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3256,13 +3350,14 @@ AcpiDmDumpPmtt ( +@@ -3256,13 +3349,14 @@ AcpiDmDumpPmtt ( /* Walk the variable count of proximity domains */ @@ -4127,7 +4387,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c DomainCount) { Status = AcpiDmDumpTable (Length, -@@ -3290,15 +3385,16 @@ AcpiDmDumpPmtt ( +@@ -3290,15 +3384,16 @@ AcpiDmDumpPmtt ( DimmSubTable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, MemSubTable, DomainOffset); @@ -4147,7 +4407,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3318,7 +3414,7 @@ AcpiDmDumpPmtt ( +@@ -3318,7 +3413,7 @@ AcpiDmDumpPmtt ( Status = AcpiDmDumpTable (Length, Offset + MemOffset + DimmOffset, DimmSubTable, @@ -4156,7 +4416,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3326,23 +3422,22 @@ AcpiDmDumpPmtt ( +@@ -3326,23 +3421,22 @@ AcpiDmDumpPmtt ( /* Point to next DIMM subtable */ @@ -4186,7 +4446,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } } -@@ -3498,6 +3593,8 @@ AcpiDmDumpS3pt ( +@@ -3498,6 +3592,8 @@ AcpiDmDumpS3pt ( ACPI_FPDT_HEADER *SubTable; ACPI_DMTABLE_INFO *InfoTable; ACPI_TABLE_S3PT *S3ptTable = ACPI_CAST_PTR (ACPI_TABLE_S3PT, Tables); @@ -4195,7 +4455,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c /* Main table */ -@@ -3508,20 +3605,22 @@ AcpiDmDumpS3pt ( +@@ -3508,20 +3604,22 @@ AcpiDmDumpS3pt ( return 0; } @@ -4221,7 +4481,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { case ACPI_S3PT_TYPE_RESUME: -@@ -3536,7 +3635,7 @@ AcpiDmDumpS3pt ( +@@ -3536,7 +3634,7 @@ AcpiDmDumpS3pt ( default: AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n", @@ -4230,7 +4490,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c /* Attempt to continue */ -@@ -3549,7 +3648,7 @@ AcpiDmDumpS3pt ( +@@ -3549,7 +3647,7 @@ AcpiDmDumpS3pt ( } AcpiOsPrintf ("\n"); @@ -4239,7 +4499,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { -@@ -3583,9 +3682,11 @@ void +@@ -3583,9 +3681,11 @@ void AcpiDmDumpSlic ( ACPI_TABLE_HEADER *Table) { @@ -4253,7 +4513,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c } -@@ -3608,14 +3709,17 @@ AcpiDmDumpSlit ( +@@ -3608,14 +3708,17 @@ AcpiDmDumpSlit ( ACPI_STATUS Status; UINT32 Offset; UINT8 *Row; @@ -4273,7 +4533,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3623,7 +3727,8 @@ AcpiDmDumpSlit ( +@@ -3623,7 +3726,8 @@ AcpiDmDumpSlit ( /* Display the Locality NxN Matrix */ @@ -4283,7 +4543,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]); Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry; -@@ -3636,7 +3741,7 @@ AcpiDmDumpSlit ( +@@ -3636,7 +3740,7 @@ AcpiDmDumpSlit ( { /* Check for beyond EOT */ @@ -4292,7 +4552,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { AcpiOsPrintf ( "\n**** Not enough room in table for all localities\n"); -@@ -3688,11 +3793,13 @@ AcpiDmDumpSrat ( +@@ -3688,11 +3792,13 @@ AcpiDmDumpSrat ( UINT32 Offset = sizeof (ACPI_TABLE_SRAT); ACPI_SUBTABLE_HEADER *SubTable; ACPI_DMTABLE_INFO *InfoTable; @@ -4307,7 +4567,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3701,12 +3808,12 @@ AcpiDmDumpSrat ( +@@ -3701,12 +3807,12 @@ AcpiDmDumpSrat ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset); @@ -4322,7 +4582,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c SubTable->Length, AcpiDmTableInfoSratHdr); if (ACPI_FAILURE (Status)) { -@@ -3755,7 +3862,7 @@ AcpiDmDumpSrat ( +@@ -3755,7 +3861,7 @@ AcpiDmDumpSrat ( } AcpiOsPrintf ("\n"); @@ -4331,7 +4591,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { -@@ -3792,13 +3899,14 @@ AcpiDmDumpStao ( +@@ -3792,13 +3898,14 @@ AcpiDmDumpStao ( { ACPI_STATUS Status; char *Namepath; @@ -4347,7 +4607,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoStao); if (ACPI_FAILURE (Status)) { -@@ -3807,7 +3915,7 @@ AcpiDmDumpStao ( +@@ -3807,7 +3914,7 @@ AcpiDmDumpStao ( /* The rest of the table consists of Namepath strings */ @@ -4356,7 +4616,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c { Namepath = ACPI_ADD_PTR (char, Table, Offset); StringLength = strlen (Namepath) + 1; -@@ -3849,11 +3957,14 @@ AcpiDmDumpTcpa ( +@@ -3849,11 +3956,14 @@ AcpiDmDumpTcpa ( ACPI_TABLE_TCPA_HDR *SubTable = ACPI_ADD_PTR ( ACPI_TABLE_TCPA_HDR, Table, Offset); ACPI_STATUS Status; @@ -4372,7 +4632,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c 0, AcpiDmTableInfoTcpaHdr); if (ACPI_FAILURE (Status)) { -@@ -3864,18 +3975,19 @@ AcpiDmDumpTcpa ( +@@ -3864,18 +3974,19 @@ AcpiDmDumpTcpa ( * Examine the PlatformClass field to determine the table type. * Either a client or server table. Only one. */ @@ -4397,7 +4657,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c break; default: -@@ -3912,11 +4024,13 @@ AcpiDmDumpVrtc ( +@@ -3912,11 +4023,13 @@ AcpiDmDumpVrtc ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_VRTC); ACPI_VRTC_ENTRY *SubTable; @@ -4412,7 +4672,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3925,12 +4039,12 @@ AcpiDmDumpVrtc ( +@@ -3925,12 +4038,12 @@ AcpiDmDumpVrtc ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset); @@ -4427,7 +4687,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0); if (ACPI_FAILURE (Status)) { -@@ -3965,11 +4079,13 @@ AcpiDmDumpWdat ( +@@ -3965,11 +4078,13 @@ AcpiDmDumpWdat ( ACPI_STATUS Status; UINT32 Offset = sizeof (ACPI_TABLE_WDAT); ACPI_WDAT_ENTRY *SubTable; @@ -4442,7 +4702,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c if (ACPI_FAILURE (Status)) { return; -@@ -3978,12 +4094,12 @@ AcpiDmDumpWdat ( +@@ -3978,12 +4093,12 @@ AcpiDmDumpWdat ( /* Subtables */ SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, Table, Offset); @@ -4457,7 +4717,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0); if (ACPI_FAILURE (Status)) { -@@ -4018,12 +4134,13 @@ AcpiDmDumpWpbt ( +@@ -4018,12 +4133,13 @@ AcpiDmDumpWpbt ( { ACPI_STATUS Status; ACPI_TABLE_WPBT *SubTable; @@ -4472,7 +4732,7 @@ Index: acpica-unix2-20170728/source/common/dmtbdump.c Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWpbt); if (ACPI_FAILURE (Status)) { -@@ -4033,10 +4150,10 @@ AcpiDmDumpWpbt ( +@@ -4033,10 +4149,10 @@ AcpiDmDumpWpbt ( /* Extract the arguments buffer length from the main table */ SubTable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table); @@ -5218,6 +5478,22 @@ Index: acpica-unix2-20170728/source/components/disassembler/dmopcode.c Info->BitOffset += Offset; if (Info->BitOffset % 8 == 0) +@@ -942,10 +949,15 @@ AcpiDmDisassembleOneOp ( + + if (Child->Common.AmlOpcode == AML_INT_BYTELIST_OP) + { ++ /* UINT64 Tmp64; */ ++ + AcpiOsPrintf ("\n"); + + Aml = Child->Named.Data; ++ /* + Length = (UINT32) Child->Common.Value.Integer; ++ */ ++ Length = (UINT32) Child->Common.Value.Size; + + Info->Level += 1; + Info->MappingOp = Op; Index: acpica-unix2-20170728/source/components/disassembler/dmresrcl.c =================================================================== --- acpica-unix2-20170728.orig/source/components/disassembler/dmresrcl.c @@ -5562,7 +5838,7 @@ Index: acpica-unix2-20170728/source/components/disassembler/dmresrcl2.c VendorData = ACPI_ADD_PTR (UINT8, Resource, sizeof (AML_RESOURCE_UART_SERIALBUS)); -@@ -601,15 +621,19 @@ AcpiDmI2cSerialBusDescriptor ( +@@ -601,24 +621,29 @@ AcpiDmI2cSerialBusDescriptor ( { UINT32 ResourceSourceOffset; char *DeviceName; @@ -5583,8 +5859,10 @@ Index: acpica-unix2-20170728/source/components/disassembler/dmresrcl2.c + Tmp32); AcpiDmIndent (Level + 1); ++ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->I2cSerialBus.TypeSpecificFlags); AcpiOsPrintf ("%s, ", -@@ -617,8 +641,8 @@ AcpiDmI2cSerialBusDescriptor ( +- AcpiGbl_AmDecode [ACPI_GET_1BIT_FLAG (Resource->I2cSerialBus.TypeSpecificFlags)]); ++ AcpiGbl_AmDecode [ACPI_GET_1BIT_FLAG (Tmp16)]); /* ResourceSource is a required field */ @@ -5848,7 +6126,39 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c =================================================================== --- acpica-unix2-20170728.orig/source/components/tables/tbfadt.c +++ acpica-unix2-20170728/source/components/tables/tbfadt.c -@@ -520,6 +520,8 @@ AcpiTbConvertFadt ( +@@ -424,18 +424,20 @@ AcpiTbCreateLocalFadt ( + ACPI_TABLE_HEADER *Table, + UINT32 Length) + { ++ UINT32 Tmp32; + + /* + * Check if the FADT is larger than the largest table that we expect + * (typically the current ACPI specification version). If so, truncate + * the table, and issue a warning. + */ +- if (Length > sizeof (ACPI_TABLE_FADT)) ++ ACPI_MOVE_32_TO_32(&Tmp32, &Length); ++ if (Tmp32 > sizeof (ACPI_TABLE_FADT)) + { + ACPI_BIOS_WARNING ((AE_INFO, + "FADT (revision %u) is longer than %s length, " + "truncating length %u to %u", +- Table->Revision, ACPI_FADT_CONFORMANCE, Length, ++ Table->Revision, ACPI_FADT_CONFORMANCE, Tmp32, + (UINT32) sizeof (ACPI_TABLE_FADT))); + } + +@@ -446,7 +448,7 @@ AcpiTbCreateLocalFadt ( + /* Copy the original FADT, up to sizeof (ACPI_TABLE_FADT) */ + + memcpy (&AcpiGbl_FADT, Table, +- ACPI_MIN (Length, sizeof (ACPI_TABLE_FADT))); ++ ACPI_MIN (Tmp32, sizeof (ACPI_TABLE_FADT))); + + /* Take a copy of the Hardware Reduced flag */ + +@@ -520,6 +522,8 @@ AcpiTbConvertFadt ( UINT8 Length; UINT8 Flags; UINT32 i; @@ -5857,7 +6167,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c /* -@@ -533,7 +535,8 @@ AcpiTbConvertFadt ( +@@ -533,7 +537,8 @@ AcpiTbConvertFadt ( * Note: The FADT revision value is unreliable. Only the length can be * trusted. */ @@ -5867,7 +6177,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c { AcpiGbl_FADT.PreferredProfile = 0; AcpiGbl_FADT.PstateControl = 0; -@@ -546,14 +549,15 @@ AcpiTbConvertFadt ( +@@ -546,14 +551,15 @@ AcpiTbConvertFadt ( * current FADT version as defined by the ACPI specification. * Thus, we will have a common FADT internally. */ @@ -5886,7 +6196,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c /* If Hardware Reduced flag is set, we are all done */ -@@ -614,7 +618,9 @@ AcpiTbConvertFadt ( +@@ -614,7 +620,9 @@ AcpiTbConvertFadt ( { if (Address64->Address) { @@ -5897,7 +6207,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c { /* Address mismatch */ -@@ -655,9 +661,11 @@ AcpiTbConvertFadt ( +@@ -655,9 +663,11 @@ AcpiTbConvertFadt ( */ if (!Address64->Address || AcpiGbl_Use32BitFadtAddresses) { @@ -5910,7 +6220,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c } } -@@ -780,10 +788,14 @@ AcpiTbSetupFadtRegisters ( +@@ -780,10 +790,14 @@ AcpiTbSetupFadtRegisters ( if (Source64->Address) { @@ -6247,3 +6557,36 @@ Index: acpica-unix2-20170728/source/tools/acpiexec/aetables.c } return (AE_OK); +Index: acpica-unix2-20170728/source/common/dmswitch.c +=================================================================== +--- acpica-unix2-20170728.orig/source/common/dmswitch.c ++++ acpica-unix2-20170728/source/common/dmswitch.c +@@ -88,13 +88,15 @@ AcpiDmProcessSwitch ( + ACPI_PARSE_OBJECT_LIST *Current; + ACPI_PARSE_OBJECT_LIST *Previous; + BOOLEAN FoundTemp = FALSE; ++ UINT32 Tmp32; + + + switch (Op->Common.AmlOpcode) + { + case AML_NAME_OP: + +- Temp = (char *) (&Op->Named.Name); ++ ACPI_MOVE_32_TO_32(&Tmp32, &Op->Named.Name); ++ Temp = (char *) (&Tmp32); + + if (!strncmp(Temp, "_T_", 3)) + { +@@ -138,7 +140,10 @@ AcpiDmProcessSwitch ( + { + /* Note, if we get here Temp is not NULL */ + +- if (!strncmp(Temp, (char *) (&Current->Op->Named.Name), 4)) ++ ACPI_MOVE_32_TO_32(&Tmp32, &Current->Op->Named.Name); ++ ++ /* if (!strncmp(Temp, (char *) (&Current->Op->Named.Name), 4)) */ ++ if (!strncmp(Temp, (char *) &Tmp32, 4)) + { + /* Match found. Ignore disassembly */ + diff --git a/int-format.patch b/int-format.patch index a0ae2ee..5618c91 100644 --- a/int-format.patch +++ b/int-format.patch @@ -275,7 +275,7 @@ Index: acpica-unix2-20170728/source/components/tables/tbfadt.c RegisterName, Address32, ACPI_FORMAT_UINT64 (Address64), AcpiGbl_Use32BitFadtAddresses ? 32 : 64)); -@@ -626,7 +626,7 @@ AcpiTbConvertFadt ( +@@ -628,7 +628,7 @@ AcpiTbConvertFadt ( ACPI_BIOS_WARNING ((AE_INFO, "32/64X address mismatch in FADT/%s: " diff --git a/ppc64le.patch b/ppc64le.patch index 24c8edc..d2fa669 100644 --- a/ppc64le.patch +++ b/ppc64le.patch @@ -6,7 +6,7 @@ Index: acpica-unix2-20170728/source/include/platform/aclinux.h #define __cdecl #endif -+#if defined(__BIG_ENDIAN__) ++#if defined(__BIG_ENDIAN) #if defined(__PPC64__) || defined(__s390x__) #define ACPI_BIG_ENDIAN #endif