diff options
Diffstat (limited to 'drivers/acpi/parser/psxface.c')
-rw-r--r-- | drivers/acpi/parser/psxface.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/acpi/parser/psxface.c b/drivers/acpi/parser/psxface.c index 4985ce58c024..41b0c8c052a8 100644 --- a/drivers/acpi/parser/psxface.c +++ b/drivers/acpi/parser/psxface.c | |||
@@ -295,6 +295,22 @@ acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info) | |||
295 | goto cleanup; | 295 | goto cleanup; |
296 | } | 296 | } |
297 | 297 | ||
298 | /* | ||
299 | * Start method evaluation with an implicit return of zero. | ||
300 | * This is done for Windows compatibility. | ||
301 | */ | ||
302 | if (acpi_gbl_enable_interpreter_slack) { | ||
303 | walk_state->implicit_return_obj = | ||
304 | acpi_ut_create_internal_object(ACPI_TYPE_INTEGER); | ||
305 | if (!walk_state->implicit_return_obj) { | ||
306 | status = AE_NO_MEMORY; | ||
307 | acpi_ds_delete_walk_state(walk_state); | ||
308 | goto cleanup; | ||
309 | } | ||
310 | |||
311 | walk_state->implicit_return_obj->integer.value = 0; | ||
312 | } | ||
313 | |||
298 | /* Parse the AML */ | 314 | /* Parse the AML */ |
299 | 315 | ||
300 | status = acpi_ps_parse_aml(walk_state); | 316 | status = acpi_ps_parse_aml(walk_state); |