aboutsummaryrefslogtreecommitdiff
path: root/meta-linaro/recipes-extra/acpica/files/name-miscompare.patch
blob: 4dee585c5e9ea037e2be7d081e7fa77b7a1dd358 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
On big-endian machines, a test case looking for the methods _L1D and _E1D
in the same scope would fail (see tests/misc/badcode.asl:184).  The names
to be compared were being treated as 32-bit ints, and not strings.  Hence,
the characters were re-ordered incorrectly, mismatching the assumptions
made in the remainder of the function.

Index: acpica-unix-20130517/source/compiler/aslanalyze.c
===================================================================
--- acpica-unix-20130517.orig/source/compiler/aslanalyze.c	2013-05-28 20:56:34.000000000 -0600
+++ acpica-unix-20130517/source/compiler/aslanalyze.c	2013-05-28 20:56:34.000000000 -0600
@@ -446,7 +446,7 @@
 
     /* Need a null-terminated string version of NameSeg */
 
-    ACPI_MOVE_32_TO_32 (Name, &Op->Asl.NameSeg);
+    ACPI_MOVE_NAME (Name, &Op->Asl.NameSeg);
     Name[ACPI_NAME_SIZE] = 0;
 
     /*
@@ -473,7 +473,7 @@
      * We are now sure we have an _Lxx or _Exx.
      * Create the target name that would cause collision (Flip E/L)
      */
-    ACPI_MOVE_32_TO_32 (Target, Name);
+    ACPI_MOVE_NAME (Target, Name);
 
     /* Inject opposite letter ("L" versus "E") */