blob: 7e7e7a105fe5a260be655183bf4706ce3c315f7a [file] [log] [blame]
From trenn@suse.de Tue Feb 3 15:04:59 2009
From: Lin Ming <ming.m.lin@intel.com>
Date: Tue, 27 Jan 2009 17:38:49 +0100
Subject: ACPICA: Fixed a couple memory leaks associated with "implicit return"
To: stable@kernel.org
Cc: Len Brown <len.brown@intel.com>, Bob Moore <robert.moore@intel.com>, Lin Ming <ming.m.lin@intel.com>
Message-ID: <1233074343-23414-8-git-send-email-trenn@suse.de>
From: Lin Ming <ming.m.lin@intel.com>
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 | 3 +++
drivers/acpi/parser/psparse.c | 4 +++-
2 files changed, 6 insertions(+), 1 deletion(-)
--- a/drivers/acpi/dispatcher/dsmethod.c
+++ b/drivers/acpi/dispatcher/dsmethod.c
@@ -103,6 +103,9 @@ acpi_ds_method_error(acpi_status status,
NULL);
acpi_ex_enter_interpreter();
}
+
+ acpi_ds_clear_implicit_return(walk_state);
+
#ifdef ACPI_DISASSEMBLER
if (ACPI_FAILURE(status)) {
--- a/drivers/acpi/parser/psparse.c
+++ b/drivers/acpi/parser/psparse.c
@@ -641,10 +641,12 @@ acpi_status acpi_ps_parse_aml(struct acp
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);
}
}