]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ACPICA: Fixed a couple memory leaks associated with "implicit return"
authorLin Ming <ming.m.lin@intel.com>
Tue, 27 Jan 2009 16:38:49 +0000 (17:38 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 6 Feb 2009 22:00:41 +0000 (14:00 -0800)
commit d8a0ec914afa1a994d2f6184ac4c6668b5f8068f upstream

Fixed a couple memory leaks associated with "implicit return" objects
when the AML Interpreter slack mode is enabled.

http://www.acpica.org/bugzilla/show_bug.cgi?id=349

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Thomas Renninger <trenn@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/acpi/dispatcher/dsmethod.c
drivers/acpi/parser/psparse.c

index 4613b9ca57929f5c4ba867c6f8aa496a887d3dbe..279a5a60a0dd492a2b27f144b12b353b9de78a2a 100644 (file)
@@ -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)) {
 
index 15e1702e48d606ad4313d547dafbc4b99b518d75..a05e2a34d92dec45d919a24b4963738a9a5863f1 100644 (file)
@@ -641,10 +641,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);
                        }
                }