From f94a1585adf694183e32096b42262c6363ea5ba4 Mon Sep 17 00:00:00 2001 From: Lin Ming Date: Sat, 27 Sep 2008 11:50:24 +0800 Subject: [PATCH] --- yaml --- r: 117320 b: refs/heads/master c: d8a0ec914afa1a994d2f6184ac4c6668b5f8068f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/acpi/dispatcher/dsmethod.c | 3 +++ trunk/drivers/acpi/parser/psparse.c | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 29f50cf3341b..296f408d03f4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 68e125c40597802b9789bc696775bf0246e7667d +refs/heads/master: d8a0ec914afa1a994d2f6184ac4c6668b5f8068f diff --git a/trunk/drivers/acpi/dispatcher/dsmethod.c b/trunk/drivers/acpi/dispatcher/dsmethod.c index 4613b9ca5792..279a5a60a0dd 100644 --- a/trunk/drivers/acpi/dispatcher/dsmethod.c +++ b/trunk/drivers/acpi/dispatcher/dsmethod.c @@ -103,6 +103,9 @@ acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state) NULL); acpi_ex_enter_interpreter(); } + + acpi_ds_clear_implicit_return(walk_state); + #ifdef ACPI_DISASSEMBLER if (ACPI_FAILURE(status)) { diff --git a/trunk/drivers/acpi/parser/psparse.c b/trunk/drivers/acpi/parser/psparse.c index 52caaf6582e7..68e932f215ea 100644 --- a/trunk/drivers/acpi/parser/psparse.c +++ b/trunk/drivers/acpi/parser/psparse.c @@ -635,10 +635,12 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) ACPI_WALK_METHOD_RESTART; } } else { - /* On error, delete any return object */ + /* On error, delete any return object or implicit return */ acpi_ut_remove_reference(previous_walk_state-> return_desc); + acpi_ds_clear_implicit_return + (previous_walk_state); } }