aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/parser/psxface.c
diff options
context:
space:
mode:
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)
99 } 99 }
100 100
101 /* 101 /*
102 * Get a new owner_id for objects created by this method. Namespace
103 * objects (such as Operation Regions) can be created during the
104 * first pass parse.
105 */
106 status = acpi_ut_allocate_owner_id(&info->obj_desc->method.owner_id);
107 if (ACPI_FAILURE(status)) {
108 return_ACPI_STATUS(status);
109 }
110
111 /*
102 * The caller "owns" the parameters, so give each one an extra 112 * The caller "owns" the parameters, so give each one an extra
103 * reference 113 * reference
104 */ 114 */
@@ -129,6 +139,9 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info)
129 status = acpi_ps_execute_pass(info); 139 status = acpi_ps_execute_pass(info);
130 140
131 cleanup: 141 cleanup:
142 if (info->obj_desc->method.owner_id) {
143 acpi_ut_release_owner_id(&info->obj_desc->method.owner_id);
144 }
132 145
133 /* Take away the extra reference that we gave the parameters above */ 146 /* Take away the extra reference that we gave the parameters above */
134 147