summaryrefslogtreecommitdiffstats
path: root/source/components/namespace
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2012-10-19 18:47:57 +0000
committerjkim <jkim@FreeBSD.org>2012-10-19 18:47:57 +0000
commitd8cd02b5b5893df382c08566087e32fe5b0c3abb (patch)
tree5e268c18ae0fa3ec73e13e2af60a3be57d8393ec /source/components/namespace
parentda9b951a892d96e0521abeec09d4345ddf04ab8d (diff)
downloadFreeBSD-src-d8cd02b5b5893df382c08566087e32fe5b0c3abb.zip
FreeBSD-src-d8cd02b5b5893df382c08566087e32fe5b0c3abb.tar.gz
Import ACPICA 20121018.
Diffstat (limited to 'source/components/namespace')
-rw-r--r--source/components/namespace/nsaccess.c5
-rw-r--r--source/components/namespace/nsalloc.c6
-rw-r--r--source/components/namespace/nsdump.c3
-rw-r--r--source/components/namespace/nsdumpdv.c2
-rw-r--r--source/components/namespace/nseval.c1
-rw-r--r--source/components/namespace/nsinit.c2
-rw-r--r--source/components/namespace/nsload.c11
-rw-r--r--source/components/namespace/nsnames.c4
-rw-r--r--source/components/namespace/nsobject.c10
-rw-r--r--source/components/namespace/nsparse.c10
-rw-r--r--source/components/namespace/nssearch.c1
-rw-r--r--source/components/namespace/nsutils.c17
-rw-r--r--source/components/namespace/nswalk.c12
-rw-r--r--source/components/namespace/nsxfeval.c22
-rw-r--r--source/components/namespace/nsxfname.c69
-rw-r--r--source/components/namespace/nsxfobj.c5
16 files changed, 92 insertions, 88 deletions
diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c
index 9dfa76f..64342ba 100644
--- a/source/components/namespace/nsaccess.c
+++ b/source/components/namespace/nsaccess.c
@@ -121,12 +121,12 @@ AcpiNsRootInitialize (
Status = AcpiNsLookup (NULL, InitVal->Name, InitVal->Type,
ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH,
NULL, &NewNode);
-
- if (ACPI_FAILURE (Status) || (!NewNode)) /* Must be on same line for code converter */
+ if (ACPI_FAILURE (Status))
{
ACPI_EXCEPTION ((AE_INFO, Status,
"Could not create predefined name %s",
InitVal->Name));
+ continue;
}
/*
@@ -697,4 +697,3 @@ AcpiNsLookup (
*ReturnNode = ThisNode;
return_ACPI_STATUS (AE_OK);
}
-
diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c
index c7e83e0..d10c997 100644
--- a/source/components/namespace/nsalloc.c
+++ b/source/components/namespace/nsalloc.c
@@ -376,7 +376,7 @@ AcpiNsDeleteChildren (
*
* RETURN: None.
*
- * DESCRIPTION: Delete a subtree of the namespace. This includes all objects
+ * DESCRIPTION: Delete a subtree of the namespace. This includes all objects
* stored within the subtree.
*
******************************************************************************/
@@ -472,7 +472,7 @@ AcpiNsDeleteNamespaceSubtree (
* RETURN: Status
*
* DESCRIPTION: Delete entries within the namespace that are owned by a
- * specific ID. Used to delete entire ACPI tables. All
+ * specific ID. Used to delete entire ACPI tables. All
* reference counts are updated.
*
* MUTEX: Locks namespace during deletion walk.
@@ -584,5 +584,3 @@ AcpiNsDeleteNamespaceByOwner (
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
return_VOID;
}
-
-
diff --git a/source/components/namespace/nsdump.c b/source/components/namespace/nsdump.c
index e0635dc..ef2aac5 100644
--- a/source/components/namespace/nsdump.c
+++ b/source/components/namespace/nsdump.c
@@ -736,7 +736,7 @@ AcpiNsDumpEntry (
*
* PARAMETERS: SearchBase - Root of subtree to be dumped, or
* NS_ALL to dump the entire namespace
- * MaxDepth - Maximum depth of dump. Use INT_MAX
+ * MaxDepth - Maximum depth of dump. Use INT_MAX
* for an effectively unlimited depth.
*
* RETURN: None
@@ -780,4 +780,3 @@ AcpiNsDumpTables (
}
#endif
#endif
-
diff --git a/source/components/namespace/nsdumpdv.c b/source/components/namespace/nsdumpdv.c
index 9d30886..b42b824 100644
--- a/source/components/namespace/nsdumpdv.c
+++ b/source/components/namespace/nsdumpdv.c
@@ -157,5 +157,3 @@ AcpiNsDumpRootDevices (
#endif
#endif
-
-
diff --git a/source/components/namespace/nseval.c b/source/components/namespace/nseval.c
index 0183f7e7..537dfaf 100644
--- a/source/components/namespace/nseval.c
+++ b/source/components/namespace/nseval.c
@@ -482,4 +482,3 @@ Exit:
}
return_VOID;
}
-
diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c
index f3907aa..a24a67a 100644
--- a/source/components/namespace/nsinit.c
+++ b/source/components/namespace/nsinit.c
@@ -254,7 +254,7 @@ ErrorExit:
*
* RETURN: Status
*
- * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every object
+ * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every object
* within the namespace.
*
* Currently, the only objects that require initialization are:
diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c
index 3ef33f9..77aed81 100644
--- a/source/components/namespace/nsload.c
+++ b/source/components/namespace/nsload.c
@@ -93,8 +93,8 @@ AcpiNsLoadTable (
/*
* Parse the table and load the namespace with all named
- * objects found within. Control methods are NOT parsed
- * at this time. In fact, the control methods cannot be
+ * objects found within. Control methods are NOT parsed
+ * at this time. In fact, the control methods cannot be
* parsed until the entire namespace is loaded, because
* if a control method makes a forward reference (call)
* to another control method, we can't continue parsing
@@ -142,7 +142,7 @@ Unlock:
}
/*
- * Now we can parse the control methods. We always parse
+ * Now we can parse the control methods. We always parse
* them here for a sanity check, and if configured for
* just-in-time parsing, we delete the control method
* parse trees.
@@ -192,7 +192,7 @@ AcpiNsLoadNamespace (
}
/*
- * Load the namespace. The DSDT is required,
+ * Load the namespace. The DSDT is required,
* but the SSDT and PSDT tables are optional.
*/
Status = AcpiNsLoadTableByType (ACPI_TABLE_ID_DSDT);
@@ -318,7 +318,7 @@ AcpiNsDeleteSubtree (
* RETURN: Status
*
* DESCRIPTION: Shrinks the namespace, typically in response to an undocking
- * event. Deletes an entire subtree starting from (and
+ * event. Deletes an entire subtree starting from (and
* including) the given handle.
*
******************************************************************************/
@@ -353,4 +353,3 @@ AcpiNsUnloadNamespace (
}
#endif
#endif
-
diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c
index f70900d..e7c73a2 100644
--- a/source/components/namespace/nsnames.c
+++ b/source/components/namespace/nsnames.c
@@ -223,7 +223,7 @@ AcpiNsGetPathnameLength (
ACPI_ERROR ((AE_INFO,
"Invalid Namespace Node (%p) while traversing namespace",
NextNode));
- return 0;
+ return (0);
}
Size += ACPI_PATH_SEGMENT_LENGTH;
NextNode = NextNode->Parent;
@@ -299,5 +299,3 @@ AcpiNsHandleToPathname (
(char *) Buffer->Pointer, (UINT32) RequiredSize));
return_ACPI_STATUS (AE_OK);
}
-
-
diff --git a/source/components/namespace/nsobject.c b/source/components/namespace/nsobject.c
index 9b219a5..54e918e 100644
--- a/source/components/namespace/nsobject.c
+++ b/source/components/namespace/nsobject.c
@@ -66,7 +66,7 @@
* RETURN: Status
*
* DESCRIPTION: Record the given object as the value associated with the
- * name whose ACPI_HANDLE is passed. If Object is NULL
+ * name whose ACPI_HANDLE is passed. If Object is NULL
* and Type is ACPI_TYPE_ANY, set the name as having no value.
* Note: Future may require that the Node->Flags field be passed
* as a parameter.
@@ -146,7 +146,7 @@ AcpiNsAttachObject (
{
/*
* Value passed is a name handle and that name has a
- * non-null value. Use that name's value and type.
+ * non-null value. Use that name's value and type.
*/
ObjDesc = ((ACPI_NAMESPACE_NODE *) Object)->Object;
ObjectType = ((ACPI_NAMESPACE_NODE *) Object)->Type;
@@ -354,7 +354,7 @@ AcpiNsGetSecondaryObject (
*
* RETURN: Status
*
- * DESCRIPTION: Low-level attach data. Create and attach a Data object.
+ * DESCRIPTION: Low-level attach data. Create and attach a Data object.
*
******************************************************************************/
@@ -420,7 +420,7 @@ AcpiNsAttachData (
*
* RETURN: Status
*
- * DESCRIPTION: Low-level detach data. Delete the data node, but the caller
+ * DESCRIPTION: Low-level detach data. Delete the data node, but the caller
* is responsible for the actual data.
*
******************************************************************************/
@@ -501,5 +501,3 @@ AcpiNsGetAttachedData (
return (AE_NOT_FOUND);
}
-
-
diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c
index 2c768c0..4037456 100644
--- a/source/components/namespace/nsparse.c
+++ b/source/components/namespace/nsparse.c
@@ -187,11 +187,11 @@ AcpiNsParseTable (
/*
* AML Parse, pass 1
*
- * In this pass, we load most of the namespace. Control methods
- * are not parsed until later. A parse tree is not created. Instead,
- * each Parser Op subtree is deleted when it is finished. This saves
+ * In this pass, we load most of the namespace. Control methods
+ * are not parsed until later. A parse tree is not created. Instead,
+ * each Parser Op subtree is deleted when it is finished. This saves
* a great deal of memory, and allows a small cache of parse objects
- * to service the entire parse. The second pass of the parse then
+ * to service the entire parse. The second pass of the parse then
* performs another complete parse of the AML.
*/
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n"));
@@ -221,5 +221,3 @@ AcpiNsParseTable (
return_ACPI_STATUS (Status);
}
-
-
diff --git a/source/components/namespace/nssearch.c b/source/components/namespace/nssearch.c
index d6f59cc..82d9a06 100644
--- a/source/components/namespace/nssearch.c
+++ b/source/components/namespace/nssearch.c
@@ -421,4 +421,3 @@ AcpiNsSearchAndEnter (
*ReturnNode = NewNode;
return_ACPI_STATUS (AE_OK);
}
-
diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c
index 43f734e..6370dab 100644
--- a/source/components/namespace/nsutils.c
+++ b/source/components/namespace/nsutils.c
@@ -622,7 +622,7 @@ AcpiNsExternalizeName (
((NumSegments > 0) ? (NumSegments - 1) : 0) + 1;
/*
- * Check to see if we're still in bounds. If not, there's a problem
+ * Check to see if we're still in bounds. If not, there's a problem
* with InternalName (invalid format).
*/
if (RequiredLength > InternalNameLength)
@@ -655,10 +655,13 @@ AcpiNsExternalizeName (
(*ConvertedName)[j++] = '.';
}
- (*ConvertedName)[j++] = InternalName[NamesIndex++];
- (*ConvertedName)[j++] = InternalName[NamesIndex++];
- (*ConvertedName)[j++] = InternalName[NamesIndex++];
- (*ConvertedName)[j++] = InternalName[NamesIndex++];
+ /* Copy and validate the 4-char name segment */
+
+ ACPI_MOVE_NAME (&(*ConvertedName)[j], &InternalName[NamesIndex]);
+ AcpiUtRepairName (&(*ConvertedName)[j]);
+
+ j += ACPI_NAME_SIZE;
+ NamesIndex += ACPI_NAME_SIZE;
}
}
@@ -797,7 +800,7 @@ AcpiNsOpensScope (
* \ (backslash) and ^ (carat) prefixes, and the
* . (period) to separate segments are supported.
* PrefixNode - Root of subtree to be searched, or NS_ALL for the
- * root of the name space. If Name is fully
+ * root of the name space. If Name is fully
* qualified (first INT8 is '\'), the passed value
* of Scope will not be accessed.
* Flags - Used to indicate whether to perform upsearch or
@@ -805,7 +808,7 @@ AcpiNsOpensScope (
* ReturnNode - Where the Node is returned
*
* DESCRIPTION: Look up a name relative to a given scope and return the
- * corresponding Node. NOTE: Scope can be null.
+ * corresponding Node. NOTE: Scope can be null.
*
* MUTEX: Locks namespace
*
diff --git a/source/components/namespace/nswalk.c b/source/components/namespace/nswalk.c
index 35c3e17..7c3a434 100644
--- a/source/components/namespace/nswalk.c
+++ b/source/components/namespace/nswalk.c
@@ -65,8 +65,8 @@
* RETURN: ACPI_NAMESPACE_NODE - Pointer to the NEXT child or NULL if
* none is found.
*
- * DESCRIPTION: Return the next peer node within the namespace. If Handle
- * is valid, Scope is ignored. Otherwise, the first node
+ * DESCRIPTION: Return the next peer node within the namespace. If Handle
+ * is valid, Scope is ignored. Otherwise, the first node
* within Scope is returned.
*
******************************************************************************/
@@ -105,8 +105,8 @@ AcpiNsGetNextNode (
* RETURN: ACPI_NAMESPACE_NODE - Pointer to the NEXT child or NULL if
* none is found.
*
- * DESCRIPTION: Return the next peer node within the namespace. If Handle
- * is valid, Scope is ignored. Otherwise, the first node
+ * DESCRIPTION: Return the next peer node within the namespace. If Handle
+ * is valid, Scope is ignored. Otherwise, the first node
* within Scope is returned.
*
******************************************************************************/
@@ -327,7 +327,7 @@ AcpiNsWalkNamespace (
/*
* Depth first search: Attempt to go down another level in the
- * namespace if we are allowed to. Don't go any further if we have
+ * namespace if we are allowed to. Don't go any further if we have
* reached the caller specified maximum depth or if the user
* function has specified that the maximum depth has been reached.
*/
@@ -382,5 +382,3 @@ AcpiNsWalkNamespace (
return_ACPI_STATUS (AE_OK);
}
-
-
diff --git a/source/components/namespace/nsxfeval.c b/source/components/namespace/nsxfeval.c
index 5006588..fcd6fb7 100644
--- a/source/components/namespace/nsxfeval.c
+++ b/source/components/namespace/nsxfeval.c
@@ -68,16 +68,16 @@ AcpiNsResolveReferences (
* PARAMETERS: Handle - Object handle (optional)
* Pathname - Object pathname (optional)
* ExternalParams - List of parameters to pass to method,
- * terminated by NULL. May be NULL
+ * terminated by NULL. May be NULL
* if no parameters are being passed.
* ReturnBuffer - Where to put method's return value (if
- * any). If NULL, no value is returned.
+ * any). If NULL, no value is returned.
* ReturnType - Expected type of return object
*
* RETURN: Status
*
* DESCRIPTION: Find and evaluate the given object, passing the given
- * parameters if necessary. One of "Handle" or "Pathname" must
+ * parameters if necessary. One of "Handle" or "Pathname" must
* be valid (non-null)
*
******************************************************************************/
@@ -168,15 +168,15 @@ ACPI_EXPORT_SYMBOL (AcpiEvaluateObjectTyped)
* PARAMETERS: Handle - Object handle (optional)
* Pathname - Object pathname (optional)
* ExternalParams - List of parameters to pass to method,
- * terminated by NULL. May be NULL
+ * terminated by NULL. May be NULL
* if no parameters are being passed.
* ReturnBuffer - Where to put method's return value (if
- * any). If NULL, no value is returned.
+ * any). If NULL, no value is returned.
*
* RETURN: Status
*
* DESCRIPTION: Find and evaluate the given object, passing the given
- * parameters if necessary. One of "Handle" or "Pathname" must
+ * parameters if necessary. One of "Handle" or "Pathname" must
* be valid (non-null)
*
******************************************************************************/
@@ -537,7 +537,7 @@ AcpiWalkNamespace (
Status = AcpiUtAcquireReadLock (&AcpiGbl_NamespaceRwLock);
if (ACPI_FAILURE (Status))
{
- return (Status);
+ return_ACPI_STATUS (Status);
}
/*
@@ -591,8 +591,8 @@ AcpiNsGetDeviceCallback (
ACPI_STATUS Status;
ACPI_NAMESPACE_NODE *Node;
UINT32 Flags;
- ACPI_DEVICE_ID *Hid;
- ACPI_DEVICE_ID_LIST *Cid;
+ ACPI_PNP_DEVICE_ID *Hid;
+ ACPI_PNP_DEVICE_ID_LIST *Cid;
UINT32 i;
BOOLEAN Found;
int NoMatch;
@@ -726,7 +726,7 @@ AcpiNsGetDeviceCallback (
* DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
* starting (and ending) at the object specified by StartHandle.
* The UserFunction is called whenever an object of type
- * Device is found. If the user function returns
+ * Device is found. If the user function returns
* a non-zero value, the search is terminated immediately and this
* value is returned to the caller.
*
@@ -956,5 +956,3 @@ UnlockAndExit:
}
ACPI_EXPORT_SYMBOL (AcpiGetData)
-
-
diff --git a/source/components/namespace/nsxfname.c b/source/components/namespace/nsxfname.c
index 4690d09..1d5aeec 100644
--- a/source/components/namespace/nsxfname.c
+++ b/source/components/namespace/nsxfname.c
@@ -58,8 +58,8 @@
static char *
AcpiNsCopyDeviceId (
- ACPI_DEVICE_ID *Dest,
- ACPI_DEVICE_ID *Source,
+ ACPI_PNP_DEVICE_ID *Dest,
+ ACPI_PNP_DEVICE_ID *Source,
char *StringArea);
@@ -75,8 +75,8 @@ AcpiNsCopyDeviceId (
* RETURN: Status
*
* DESCRIPTION: This routine will search for a caller specified name in the
- * name space. The caller can restrict the search region by
- * specifying a non NULL parent. The parent value is itself a
+ * name space. The caller can restrict the search region by
+ * specifying a non NULL parent. The parent value is itself a
* namespace handle.
*
******************************************************************************/
@@ -164,7 +164,7 @@ ACPI_EXPORT_SYMBOL (AcpiGetHandle)
* RETURN: Pointer to a string containing the fully qualified Name.
*
* DESCRIPTION: This routine returns the fully qualified name associated with
- * the Handle parameter. This and the AcpiPathnameToHandle are
+ * the Handle parameter. This and the AcpiPathnameToHandle are
* complementary functions.
*
******************************************************************************/
@@ -227,8 +227,7 @@ AcpiGetName (
/* Just copy the ACPI name from the Node and zero terminate it */
- ACPI_STRNCPY (Buffer->Pointer, AcpiUtGetNodeName (Node),
- ACPI_NAME_SIZE);
+ ACPI_MOVE_NAME (Buffer->Pointer, AcpiUtGetNodeName (Node));
((char *) Buffer->Pointer) [ACPI_NAME_SIZE] = 0;
Status = AE_OK;
@@ -246,23 +245,24 @@ ACPI_EXPORT_SYMBOL (AcpiGetName)
*
* FUNCTION: AcpiNsCopyDeviceId
*
- * PARAMETERS: Dest - Pointer to the destination DEVICE_ID
- * Source - Pointer to the source DEVICE_ID
+ * PARAMETERS: Dest - Pointer to the destination PNP_DEVICE_ID
+ * Source - Pointer to the source PNP_DEVICE_ID
* StringArea - Pointer to where to copy the dest string
*
* RETURN: Pointer to the next string area
*
- * DESCRIPTION: Copy a single DEVICE_ID, including the string data.
+ * DESCRIPTION: Copy a single PNP_DEVICE_ID, including the string data.
*
******************************************************************************/
static char *
AcpiNsCopyDeviceId (
- ACPI_DEVICE_ID *Dest,
- ACPI_DEVICE_ID *Source,
+ ACPI_PNP_DEVICE_ID *Dest,
+ ACPI_PNP_DEVICE_ID *Source,
char *StringArea)
{
- /* Create the destination DEVICE_ID */
+
+ /* Create the destination PNP_DEVICE_ID */
Dest->String = StringArea;
Dest->Length = Source->Length;
@@ -287,8 +287,8 @@ AcpiNsCopyDeviceId (
* namespace node and possibly by running several standard
* control methods (Such as in the case of a device.)
*
- * For Device and Processor objects, run the Device _HID, _UID, _CID, _STA,
- * _ADR, _SxW, and _SxD methods.
+ * For Device and Processor objects, run the Device _HID, _UID, _CID, _SUB,
+ * _STA, _ADR, _SxW, and _SxD methods.
*
* Note: Allocates the return buffer, must be freed by the caller.
*
@@ -301,9 +301,10 @@ AcpiGetObjectInfo (
{
ACPI_NAMESPACE_NODE *Node;
ACPI_DEVICE_INFO *Info;
- ACPI_DEVICE_ID_LIST *CidList = NULL;
- ACPI_DEVICE_ID *Hid = NULL;
- ACPI_DEVICE_ID *Uid = NULL;
+ ACPI_PNP_DEVICE_ID_LIST *CidList = NULL;
+ ACPI_PNP_DEVICE_ID *Hid = NULL;
+ ACPI_PNP_DEVICE_ID *Uid = NULL;
+ ACPI_PNP_DEVICE_ID *Sub = NULL;
char *NextIdString;
ACPI_OBJECT_TYPE Type;
ACPI_NAME Name;
@@ -356,7 +357,7 @@ AcpiGetObjectInfo (
{
/*
* Get extra info for ACPI Device/Processor objects only:
- * Run the Device _HID, _UID, and _CID methods.
+ * Run the Device _HID, _UID, _SUB, and _CID methods.
*
* Note: none of these methods are required, so they may or may
* not be present for this device. The Info->Valid bitfield is used
@@ -381,6 +382,15 @@ AcpiGetObjectInfo (
Valid |= ACPI_VALID_UID;
}
+ /* Execute the Device._SUB method */
+
+ Status = AcpiUtExecute_SUB (Node, &Sub);
+ if (ACPI_SUCCESS (Status))
+ {
+ InfoSize += Sub->Length;
+ Valid |= ACPI_VALID_SUB;
+ }
+
/* Execute the Device._CID method */
Status = AcpiUtExecute_CID (Node, &CidList);
@@ -388,7 +398,7 @@ AcpiGetObjectInfo (
{
/* Add size of CID strings and CID pointer array */
- InfoSize += (CidList->ListSize - sizeof (ACPI_DEVICE_ID_LIST));
+ InfoSize += (CidList->ListSize - sizeof (ACPI_PNP_DEVICE_ID_LIST));
Valid |= ACPI_VALID_CID;
}
}
@@ -463,14 +473,15 @@ AcpiGetObjectInfo (
NextIdString = ACPI_CAST_PTR (char, Info->CompatibleIdList.Ids);
if (CidList)
{
- /* Point past the CID DEVICE_ID array */
+ /* Point past the CID PNP_DEVICE_ID array */
- NextIdString += ((ACPI_SIZE) CidList->Count * sizeof (ACPI_DEVICE_ID));
+ NextIdString += ((ACPI_SIZE) CidList->Count * sizeof (ACPI_PNP_DEVICE_ID));
}
/*
- * Copy the HID, UID, and CIDs to the return buffer. The variable-length
- * strings are copied to the reserved area at the end of the buffer.
+ * Copy the HID, UID, SUB, and CIDs to the return buffer.
+ * The variable-length strings are copied to the reserved area
+ * at the end of the buffer.
*
* For HID and CID, check if the ID is a PCI Root Bridge.
*/
@@ -491,6 +502,12 @@ AcpiGetObjectInfo (
Uid, NextIdString);
}
+ if (Sub)
+ {
+ NextIdString = AcpiNsCopyDeviceId (&Info->SubsystemId,
+ Sub, NextIdString);
+ }
+
if (CidList)
{
Info->CompatibleIdList.Count = CidList->Count;
@@ -531,6 +548,10 @@ Cleanup:
{
ACPI_FREE (Uid);
}
+ if (Sub)
+ {
+ ACPI_FREE (Sub);
+ }
if (CidList)
{
ACPI_FREE (CidList);
diff --git a/source/components/namespace/nsxfobj.c b/source/components/namespace/nsxfobj.c
index 02f7777..ea83271 100644
--- a/source/components/namespace/nsxfobj.c
+++ b/source/components/namespace/nsxfobj.c
@@ -202,8 +202,8 @@ ACPI_EXPORT_SYMBOL (AcpiGetParent)
*
* RETURN: Status
*
- * DESCRIPTION: Return the next peer object within the namespace. If Handle is
- * valid, Scope is ignored. Otherwise, the first object within
+ * DESCRIPTION: Return the next peer object within the namespace. If Handle is
+ * valid, Scope is ignored. Otherwise, the first object within
* Scope is returned.
*
******************************************************************************/
@@ -282,4 +282,3 @@ UnlockAndExit:
}
ACPI_EXPORT_SYMBOL (AcpiGetNextObject)
-
OpenPOWER on IntegriCloud