Blame name-miscompare.patch
|
Al Stone |
afae4e |
On big-endian machines, a test case looking for the methods _L1D and _E1D
|
|
Al Stone |
afae4e |
in the same scope would fail (see tests/misc/badcode.asl:184). The names
|
|
Al Stone |
afae4e |
to be compared were being treated as 32-bit ints, and not strings. Hence,
|
|
Al Stone |
afae4e |
the characters were re-ordered incorrectly, mismatching the assumptions
|
|
Al Stone |
afae4e |
made in the remainder of the function.
|
|
Al Stone |
afae4e |
|
|
Al Stone |
afae4e |
diff -urN acpica-unix2-20130214/source/compiler/aslanalyze.c acpica-unix2-20130214-names/source/compiler/aslanalyze.c
|
|
Al Stone |
afae4e |
--- acpica-unix2-20130214/source/compiler/aslanalyze.c 2013-03-21 17:31:25.803324990 -0600
|
|
Al Stone |
afae4e |
+++ acpica-unix2-20130214-names/source/compiler/aslanalyze.c 2013-03-21 17:43:45.357616802 -0600
|
|
Al Stone |
4a5eac |
@@ -445,7 +445,7 @@
|
|
Al Stone |
afae4e |
|
|
Al Stone |
afae4e |
/* Need a null-terminated string version of NameSeg */
|
|
Al Stone |
afae4e |
|
|
Al Stone |
afae4e |
- ACPI_MOVE_32_TO_32 (Name, &Op->Asl.NameSeg);
|
|
Al Stone |
afae4e |
+ ACPI_MOVE_NAME (Name, &Op->Asl.NameSeg);
|
|
Al Stone |
afae4e |
Name[ACPI_NAME_SIZE] = 0;
|
|
Al Stone |
afae4e |
|
|
Al Stone |
afae4e |
/*
|
|
Al Stone |
4a5eac |
@@ -472,7 +472,7 @@
|
|
Al Stone |
afae4e |
* We are now sure we have an _Lxx or _Exx.
|
|
Al Stone |
afae4e |
* Create the target name that would cause collision (Flip E/L)
|
|
Al Stone |
afae4e |
*/
|
|
Al Stone |
afae4e |
- ACPI_MOVE_32_TO_32 (Target, Name);
|
|
Al Stone |
afae4e |
+ ACPI_MOVE_NAME (Target, Name);
|
|
Al Stone |
afae4e |
|
|
Al Stone |
afae4e |
/* Inject opposite letter ("L" versus "E") */
|
|
Al Stone |
afae4e |
|