Dana H. Myers wrote:
> Bill Holler wrote:
>> Hi,
>>
>> I would like to try to get a fix for this into the next OpenSolaris
>> release.  Time is running out if it has not already.
>>
>> Are we happy with using AcpiEvaluateObjectTyped(), or do
>> we need to do more work in the ACPICA?
>>
>> This change works on tecra M9 and M10.  AcpiEvaluateObjectTyped()
>> returns 9 on both of these systems which indicates an error.
>>
>>
>> diff -r 11c1672e6d5b -r 90c9f0b548f7 
>> usr/src/uts/i86pc/os/cpupm/cpu_acpi.c
>> --- a/usr/src/uts/i86pc/os/cpupm/cpu_acpi.c     Tue Mar 17 19:00:36 
>> 2009 -0400
>> +++ b/usr/src/uts/i86pc/os/cpupm/cpu_acpi.c     Wed Mar 18 17:42:48 
>> 2009 -0700
>> @@ -695,11 +695,15 @@
>>        abuf.Length = ACPI_ALLOCATE_BUFFER;
>>        abuf.Pointer = NULL;
>>
>> -       if (ACPI_FAILURE(AcpiEvaluateObject(handle->cs_handle, "_CST",
>> -           NULL, &abuf))) {
>> +       if (ACPI_FAILURE(AcpiEvaluateObjectTyped(handle->cs_handle, 
>> "_CST",
>> +           NULL, &abuf, ACPI_TYPE_PACKAGE))) {
>>                cmn_err(CE_NOTE, "!cpu_acpi: _CST evaluate failure");
>>                return (-1);
>>        }
> I really don't believe this length check is required once we're using
> AcpiEvaluateObjectTyped():
>> +       if (abuf.Length < sizeof (ACPI_OBJECT)) {
>> +               cmn_err(CE_NOTE, "!cpu_acpi: _CST evaluate length 
>> failure");
>> +               return (-1);
>> +       }

I would like to keep the abuf.Length check.  The extra level of
checking should not hurt.  Should this Length check stay or go?

Bill
 
>>        obj = (ACPI_OBJECT *)abuf.Pointer;
>>        if (obj->Package.Count < 2) {
>>                cmn_err(CE_NOTE, "!cpu_acpi: _CST package bad count %d.",
>>
>>
>> Is ACPI_STATUS "9" defined?
>>
>> Regards,
>> Bill
>


Reply via email to