acpica-tools/name-miscompare.patch

35 lines
1.2 KiB
Diff
Raw Normal View History

2013-08-28 19:31:28 +00:00
On big-endian machines, a test case looking for the methods _L1D and _E1D
From: Al Stone <ahs3@redhat.com>
2013-08-28 19:31:28 +00:00
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.
---
source/compiler/aslanalyze.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
2013-08-28 19:31:28 +00:00
diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c
index fd71763..37bfc15 100644
--- a/source/compiler/aslanalyze.c
+++ b/source/compiler/aslanalyze.c
@@ -446,7 +446,7 @@ ApCheckForGpeNameConflict (
2013-08-28 19:31:28 +00:00
/* 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 @@ ApCheckForGpeNameConflict (
2013-08-28 19:31:28 +00:00
* 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") */