summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2014-01-24 13:49:31 -0800
committerRobert Moore <Robert.Moore@intel.com>2014-01-24 13:49:31 -0800
commitaac383fc86dc09f412c28d8c7468896f18257a96 (patch)
treed106fd049531eb60230fe30897d4e43ee7955780
parent541e61a05a5d95e6bd6b68d5a058d8f9dcd8f8cf (diff)
Do not abort _PRT repair on a single subpackage failure.
Always examine all subpackages for reversed entries.
-rw-r--r--source/components/namespace/nsrepair2.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c
index bec9d7eb0..406fb305c 100644
--- a/source/components/namespace/nsrepair2.c
+++ b/source/components/namespace/nsrepair2.c
@@ -754,14 +754,18 @@ AcpiNsRepair_PRT (
TopObjectList = PackageObject->Package.Elements;
ElementCount = PackageObject->Package.Count;
- for (Index = 0; Index < ElementCount; Index++)
+ /* Examine each subpackage */
+
+ for (Index = 0; Index < ElementCount; Index++, TopObjectList++)
{
SubPackage = *TopObjectList;
SubObjectList = SubPackage->Package.Elements;
- if (SubPackage->Package.Count < 4) /* Minimum required element count */
+ /* Check for minimum required element count */
+
+ if (SubPackage->Package.Count < 4)
{
- return (AE_OK);
+ continue;
}
/*
@@ -777,14 +781,11 @@ AcpiNsRepair_PRT (
SubObjectList[2] = ObjDesc;
Info->ReturnFlags |= ACPI_OBJECT_REPAIRED;
- ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags,
+ ACPI_WARN_PREDEFINED ((AE_INFO,
+ Info->FullPathname, Info->NodeFlags,
"PRT[%X]: Fixed reversed SourceName and SourceIndex",
Index));
}
-
- /* Point to the next ACPI_OPERAND_OBJECT in the top level package */
-
- TopObjectList++;
}
return (AE_OK);