]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
ACPICA: Fix for possible error when packages/buffers are passed to methods externally
authorBob Moore <robert.moore@intel.com>
Thu, 10 Apr 2008 15:06:43 +0000 (19:06 +0400)
committerLen Brown <len.brown@intel.com>
Tue, 22 Apr 2008 18:29:31 +0000 (14:29 -0400)
Fixed a problem where buffer and package objects passed as
arguments to a control method via the external AcpiEvaluateObject
interface could cause an AE_AML_INTERNAL exception depending on the
order and type of operators executed by the target control method.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/utilities/utcopy.c

index 4c4021d82f9903dbd6cb4ff2be290140a528ac20..4e9a62b34aeff7e05c626897f5c92e284b6d837c 100644 (file)
@@ -511,6 +511,10 @@ acpi_ut_copy_esimple_to_isimple(union acpi_object *external_object,
                            external_object->buffer.length);
 
                internal_object->buffer.length = external_object->buffer.length;
+
+               /* Mark buffer data valid */
+
+               internal_object->buffer.flags |= AOPOBJ_DATA_VALID;
                break;
 
        case ACPI_TYPE_INTEGER:
@@ -586,6 +590,10 @@ acpi_ut_copy_epackage_to_ipackage(union acpi_object *external_object,
                }
        }
 
+       /* Mark package data valid */
+
+       package_object->package.flags |= AOPOBJ_DATA_VALID;
+
        *internal_object = package_object;
        return_ACPI_STATUS(status);
 }