summaryrefslogtreecommitdiff
path: root/drivers/acpi/parser/psxface.c
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2005-09-03 00:09:12 -0400
committerLen Brown <len.brown@intel.com>2005-09-03 00:10:05 -0400
commita94f18810f52d3a6de0a09bee0c7258b62eca262 (patch)
treea1bee534fe254106cec916642ae90ebf15cec201 /drivers/acpi/parser/psxface.c
parent8813dfbfc56b3f7c369b3115c2f70bcacd77ec51 (diff)
[ACPI] revert owner-id-3.patch
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/parser/psxface.c')
-rw-r--r--drivers/acpi/parser/psxface.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/acpi/parser/psxface.c b/drivers/acpi/parser/psxface.c
index f6904bdf5739..80c67f2d3dd2 100644
--- a/drivers/acpi/parser/psxface.c
+++ b/drivers/acpi/parser/psxface.c
@@ -99,6 +99,16 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info)
}
/*
+ * Get a new owner_id for objects created by this method. Namespace
+ * objects (such as Operation Regions) can be created during the
+ * first pass parse.
+ */
+ status = acpi_ut_allocate_owner_id(&info->obj_desc->method.owner_id);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ /*
* The caller "owns" the parameters, so give each one an extra
* reference
*/
@@ -129,6 +139,9 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info)
status = acpi_ps_execute_pass(info);
cleanup:
+ if (info->obj_desc->method.owner_id) {
+ acpi_ut_release_owner_id(&info->obj_desc->method.owner_id);
+ }
/* Take away the extra reference that we gave the parameters above */