diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2013-06-26 19:01:10 +0000 | 
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2013-06-26 19:01:10 +0000 | 
| commit | 94c37fb2483cc09856a30e74879a69f2ccfe22f0 (patch) | |
| tree | 274ff6113dbdc6cbbbf50dc30d0527fb9cb0fc55 /source/components/namespace | |
| parent | b7f987c19dad2c6d33c64e7f96a9b4deca9e2650 (diff) | |
Notes
Diffstat (limited to 'source/components/namespace')
| -rw-r--r-- | source/components/namespace/nsdump.c | 2 | ||||
| -rw-r--r-- | source/components/namespace/nsrepair2.c | 28 | ||||
| -rw-r--r-- | source/components/namespace/nsxfname.c | 11 | 
3 files changed, 25 insertions, 16 deletions
| diff --git a/source/components/namespace/nsdump.c b/source/components/namespace/nsdump.c index be780f265fd5..82e66027acd0 100644 --- a/source/components/namespace/nsdump.c +++ b/source/components/namespace/nsdump.c @@ -618,7 +618,7 @@ AcpiNsDumpOneObject (              break;          case ACPI_TYPE_LOCAL_INDEX_FIELD: -             +              ObjDesc = (void *) ObjDesc->IndexField.IndexObj;              break; diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c index 0dcfaadf0ee1..0cf604bd61c8 100644 --- a/source/components/namespace/nsrepair2.c +++ b/source/components/namespace/nsrepair2.c @@ -501,19 +501,7 @@ AcpiNsRepair_CST (      /* -     * Entries (subpackages) in the _CST Package must be sorted by the -     * C-state type, in ascending order. -     */ -    Status = AcpiNsCheckSortedList (Info, ReturnObject, 1, 4, 1, -                ACPI_SORT_ASCENDING, "C-State Type"); -    if (ACPI_FAILURE (Status)) -    { -        return (Status); -    } - -    /* -     * We now know the list is correctly sorted by C-state type. Check if -     * the C-state type values are proportional. +     * Check if the C-state type values are proportional.       */      OuterElementCount = ReturnObject->Package.Count - 1;      i = 0; @@ -527,6 +515,7 @@ AcpiNsRepair_CST (              ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags,                  "SubPackage[%u] - removing entry due to zero count", i));              Removing = TRUE; +            goto RemoveElement;          }          ObjDesc = (*OuterElements)->Package.Elements[1]; /* Index1 = Type */ @@ -537,6 +526,7 @@ AcpiNsRepair_CST (              Removing = TRUE;          } +RemoveElement:          if (Removing)          {              AcpiNsRemoveElement (ReturnObject, i + 1); @@ -552,6 +542,18 @@ AcpiNsRepair_CST (      ObjDesc = ReturnObject->Package.Elements[0];      ObjDesc->Integer.Value = OuterElementCount; + +    /* +     * Entries (subpackages) in the _CST Package must be sorted by the +     * C-state type, in ascending order. +     */ +    Status = AcpiNsCheckSortedList (Info, ReturnObject, 1, 4, 1, +                ACPI_SORT_ASCENDING, "C-State Type"); +    if (ACPI_FAILURE (Status)) +    { +        return (Status); +    } +      return (AE_OK);  } diff --git a/source/components/namespace/nsxfname.c b/source/components/namespace/nsxfname.c index 619cec30e8c6..289ecd812f54 100644 --- a/source/components/namespace/nsxfname.c +++ b/source/components/namespace/nsxfname.c @@ -177,6 +177,7 @@ AcpiGetName (  {      ACPI_STATUS             Status;      ACPI_NAMESPACE_NODE     *Node; +    char                    *NodeName;      /* Parameter validation */ @@ -227,7 +228,8 @@ AcpiGetName (      /* Just copy the ACPI name from the Node and zero terminate it */ -    ACPI_MOVE_NAME (Buffer->Pointer, AcpiUtGetNodeName (Node)); +    NodeName = AcpiUtGetNodeName (Node); +    ACPI_MOVE_NAME (Buffer->Pointer, NodeName);      ((char *) Buffer->Pointer) [ACPI_NAME_SIZE] = 0;      Status = AE_OK; @@ -423,9 +425,14 @@ AcpiGetObjectInfo (           * Get extra info for ACPI Device/Processor objects only:           * Run the _STA, _ADR and, SxW, and _SxD methods.           * -         * Note: none of these methods are required, so they may or may +         * Notes: none of these methods are required, so they may or may           * not be present for this device. The Info->Valid bitfield is used           * to indicate which methods were found and run successfully. +         * +         * For _STA, if the method does not exist, then (as per the ACPI +         * specification), the returned CurrentStatus flags will indicate +         * that the device is present/functional/enabled. Otherwise, the +         * CurrentStatus flags reflect the value returned from _STA.           */          /* Execute the Device._STA method */ | 
