diff --git a/drivers/acpi/acpica/nseval.c b/drivers/acpi/acpica/nseval.c index bdf94ec19c10ec81cf8fe16a26d7588e44566a36..34c5dcad35b805e9ee156e32025dc2e95af30886 100644 --- a/drivers/acpi/acpica/nseval.c +++ b/drivers/acpi/acpica/nseval.c @@ -310,6 +310,14 @@ acpi_status acpi_ns_evaluate(struct acpi_evaluate_info *info) /* Map AE_CTRL_RETURN_VALUE to AE_OK, we are done with it */ status = AE_OK; + } else if (ACPI_FAILURE(status)) { + + /* If return_object exists, delete it */ + + if (info->return_object) { + acpi_ut_remove_reference(info->return_object); + info->return_object = NULL; + } } ACPI_DEBUG_PRINT((ACPI_DB_NAMES,