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);
> + }
> 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