acpica-tools/0015-Support-GTDT-in-a-big-endian-world.patch
DistroBaker 80dc240519 Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/acpica-tools.git#defe2b64332fc44bf9915c8f57d2614c529cdb43
2020-10-31 12:18:15 +01:00

70 lines
2.4 KiB
Diff

From faba93b1dd7ce4aa8983880e917d108496cd173f Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3@redhat.com>
Date: Tue, 22 Sep 2020 18:12:01 -0600
Subject: [PATCH 15/40] Support GTDT in a big-endian world
Signed-off-by: Al Stone <ahs3@redhat.com>
---
source/common/dmtbdump1.c | 13 +++++++++----
source/compiler/dttable1.c | 9 +++++++--
2 files changed, 16 insertions(+), 6 deletions(-)
Index: acpica-unix2-20200925/source/common/dmtbdump1.c
===================================================================
--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
+++ acpica-unix2-20200925/source/common/dmtbdump1.c
@@ -997,7 +997,7 @@ AcpiDmDumpGtdt (
{
ACPI_STATUS Status;
ACPI_GTDT_HEADER *Subtable;
- UINT32 Length = Table->Length;
+ UINT32 Length = AcpiUtReadUint32(&Table->Length);
UINT32 Offset = sizeof (ACPI_TABLE_GTDT);
ACPI_DMTABLE_INFO *InfoTable;
UINT32 SubtableLength;
@@ -1033,7 +1033,7 @@ AcpiDmDumpGtdt (
/* Subtables */
- while (Offset < Table->Length)
+ while (Offset < Length)
{
/* Common subtable header */
@@ -1051,8 +1051,13 @@ AcpiDmDumpGtdt (
case ACPI_GTDT_TYPE_TIMER_BLOCK:
SubtableLength = sizeof (ACPI_GTDT_TIMER_BLOCK);
- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
- Subtable))->TimerCount;
+ {
+ UINT32 Tmp32;
+
+ Tmp32 = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
+ Subtable))->TimerCount;
+ GtCount = AcpiUtReadUint32(&Tmp32);
+ }
InfoTable = AcpiDmTableInfoGtdt0;
break;
Index: acpica-unix2-20200925/source/compiler/dttable1.c
===================================================================
--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
+++ acpica-unix2-20200925/source/compiler/dttable1.c
@@ -997,8 +997,13 @@ DtCompileGtdt (
DtPushSubtable (Subtable);
ParentTable = DtPeekSubtable ();
- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
- Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount;
+ {
+ UINT32 Tmp32;
+
+ Tmp32 = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
+ Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount;
+ GtCount = AcpiUtReadUint32(&Tmp32);
+ }
while (GtCount)
{