diff options
Diffstat (limited to 'drivers/acpi/parser/psxface.c')
-rw-r--r-- | drivers/acpi/parser/psxface.c | 13 |
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 */ |