]> git.pld-linux.org Git - packages/acpica.git/blob - 0025-Support-MPST-in-a-big-endian-world.patch
- updated tests
[packages/acpica.git] / 0025-Support-MPST-in-a-big-endian-world.patch
1 From 0a25688f36df62579f4dd0444ceba33a0f8d4dcc Mon Sep 17 00:00:00 2001
2 From: Al Stone <ahs3@redhat.com>
3 Date: Wed, 23 Sep 2020 16:08:24 -0600
4 Subject: [PATCH 25/45] Support MPST in a big-endian world
5
6 Signed-off-by: Al Stone <ahs3@redhat.com>
7 ---
8  source/common/dmtbdump2.c  | 33 +++++++++++++++++++--------------
9  source/compiler/dttable2.c |  8 ++++----
10  2 files changed, 23 insertions(+), 18 deletions(-)
11
12 Index: acpica-unix2-20220331/source/common/dmtbdump2.c
13 ===================================================================
14 --- acpica-unix2-20220331.orig/source/common/dmtbdump2.c
15 +++ acpica-unix2-20220331/source/common/dmtbdump2.c
16 @@ -1047,11 +1047,13 @@ AcpiDmDumpMpst (
17      UINT16                  SubtableCount;
18      UINT32                  PowerStateCount;
19      UINT32                  ComponentCount;
20 +    UINT32                  TableLength = AcpiUtReadUint32 (&Table->Length);
21 +    UINT16                  Tmp16;
22  
23  
24      /* Main table */
25  
26 -    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMpst);
27 +    Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoMpst);
28      if (ACPI_FAILURE (Status))
29      {
30          return;
31 @@ -1059,13 +1061,14 @@ AcpiDmDumpMpst (
32  
33      /* Subtable: Memory Power Node(s) */
34  
35 -    SubtableCount = (ACPI_CAST_PTR (ACPI_TABLE_MPST, Table))->PowerNodeCount;
36 +    Tmp16 = (ACPI_CAST_PTR (ACPI_TABLE_MPST, Table))->PowerNodeCount;
37 +    SubtableCount = AcpiUtReadUint16 (&Tmp16);
38      Subtable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Table, Offset);
39  
40 -    while ((Offset < Table->Length) && SubtableCount)
41 +    while ((Offset < TableLength) && SubtableCount)
42      {
43          AcpiOsPrintf ("\n");
44 -        Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0,
45 +        Status = AcpiDmDumpTable (TableLength, Offset, Subtable0,
46              sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0);
47          if (ACPI_FAILURE (Status))
48          {
49 @@ -1074,8 +1077,8 @@ AcpiDmDumpMpst (
50  
51          /* Extract the sub-subtable counts */
52  
53 -        PowerStateCount = Subtable0->NumPowerStates;
54 -        ComponentCount = Subtable0->NumPhysicalComponents;
55 +        PowerStateCount = AcpiUtReadUint16 (&Subtable0->NumPowerStates);
56 +        ComponentCount = AcpiUtReadUint16 (&Subtable0->NumPhysicalComponents);
57          Offset += sizeof (ACPI_MPST_POWER_NODE);
58  
59          /* Sub-subtables - Memory Power State Structure(s) */
60 @@ -1086,7 +1089,7 @@ AcpiDmDumpMpst (
61          while (PowerStateCount)
62          {
63              AcpiOsPrintf ("\n");
64 -            Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0A,
65 +            Status = AcpiDmDumpTable (TableLength, Offset, Subtable0A,
66                  sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A);
67              if (ACPI_FAILURE (Status))
68              {
69 @@ -1109,7 +1112,7 @@ AcpiDmDumpMpst (
70  
71          while (ComponentCount)
72          {
73 -            Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0B,
74 +            Status = AcpiDmDumpTable (TableLength, Offset, Subtable0B,
75                  sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B);
76              if (ACPI_FAILURE (Status))
77              {
78 @@ -1126,22 +1129,24 @@ AcpiDmDumpMpst (
79          SubtableCount--;
80          Subtable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Subtable0,
81              sizeof (ACPI_MPST_POWER_NODE) +
82 -            (sizeof (ACPI_MPST_POWER_STATE) * Subtable0->NumPowerStates) +
83 -            (sizeof (ACPI_MPST_COMPONENT) * Subtable0->NumPhysicalComponents));
84 +            (sizeof (ACPI_MPST_POWER_STATE) *
85 +                AcpiUtReadUint16 (&Subtable0->NumPowerStates)) +
86 +            (sizeof (ACPI_MPST_COMPONENT) *
87 +                AcpiUtReadUint16 (&Subtable0->NumPhysicalComponents)));
88      }
89  
90      /* Subtable: Count of Memory Power State Characteristic structures */
91  
92      AcpiOsPrintf ("\n");
93      Subtable1 = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable0);
94 -    Status = AcpiDmDumpTable (Table->Length, Offset, Subtable1,
95 +    Status = AcpiDmDumpTable (TableLength, Offset, Subtable1,
96          sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1);
97      if (ACPI_FAILURE (Status))
98      {
99          return;
100      }
101  
102 -    SubtableCount = Subtable1->CharacteristicsCount;
103 +    SubtableCount = AcpiUtReadUint16 (&Subtable1->CharacteristicsCount);
104      Offset += sizeof (ACPI_MPST_DATA_HDR);
105  
106      /* Subtable: Memory Power State Characteristics structure(s) */
107 @@ -1149,10 +1154,10 @@ AcpiDmDumpMpst (
108      Subtable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, Subtable1,
109          sizeof (ACPI_MPST_DATA_HDR));
110  
111 -    while ((Offset < Table->Length) && SubtableCount)
112 +    while ((Offset < TableLength) && SubtableCount)
113      {
114          AcpiOsPrintf ("\n");
115 -        Status = AcpiDmDumpTable (Table->Length, Offset, Subtable2,
116 +        Status = AcpiDmDumpTable (TableLength, Offset, Subtable2,
117              sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2);
118          if (ACPI_FAILURE (Status))
119          {
120 Index: acpica-unix2-20220331/source/compiler/dttable2.c
121 ===================================================================
122 --- acpica-unix2-20220331.orig/source/compiler/dttable2.c
123 +++ acpica-unix2-20220331/source/compiler/dttable2.c
124 @@ -359,7 +359,7 @@ DtCompileMpst (
125      DtPushSubtable (Subtable);
126  
127      MpstChannelInfo = ACPI_CAST_PTR (ACPI_MPST_CHANNEL, Subtable->Buffer);
128 -    SubtableCount = MpstChannelInfo->PowerNodeCount;
129 +    SubtableCount = AcpiUtReadUint16 (&MpstChannelInfo->PowerNodeCount);
130  
131      while (*PFieldList && SubtableCount)
132      {
133 @@ -377,8 +377,8 @@ DtCompileMpst (
134          DtPushSubtable (Subtable);
135  
136          MpstPowerNode = ACPI_CAST_PTR (ACPI_MPST_POWER_NODE, Subtable->Buffer);
137 -        PowerStateCount = MpstPowerNode->NumPowerStates;
138 -        ComponentCount = MpstPowerNode->NumPhysicalComponents;
139 +        PowerStateCount = AcpiUtReadUint16 (&MpstPowerNode->NumPowerStates);
140 +        ComponentCount = AcpiUtReadUint16 (&MpstPowerNode->NumPhysicalComponents);
141  
142          ParentTable = DtPeekSubtable ();
143  
144 @@ -431,7 +431,7 @@ DtCompileMpst (
145      DtPushSubtable (Subtable);
146  
147      MpstDataHeader = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable->Buffer);
148 -    SubtableCount = MpstDataHeader->CharacteristicsCount;
149 +    SubtableCount = AcpiUtReadUint16(&MpstDataHeader->CharacteristicsCount);
150  
151      ParentTable = DtPeekSubtable ();
152  
This page took 0.049631 seconds and 3 git commands to generate.