From: linux-acpi-owner(a)vger.kernel.org [mailto:linux-acpi-
owner(a)vger.kernel.org] On Behalf Of Vegard Nossum
Subject: [PATCH] ACPICA: cleanup method properly on error
If the call to acpi_ds_init_aml_walk() fails, then we have to undo the
walk state push done by acpi_ds_create_walk_state(). Otherwise, the new
walk state (which has just been freed) will remain on the thread's
walk_state_list and be dereferenced in acpi_ps_parse_aml() when we try
to get the new state.
I haven't looked into the detail.
Let me first ask simple questions and present simple concerns in order to move this
You can observe this when reading e.g.
Do you mean you have real issues related to this?
If so, could provide the .config and dmesg for us?
Signed-off-by: Vegard Nossum <vegard.nossum(a)oracle.com>
drivers/acpi/acpica/dsmethod.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/acpi/acpica/dsmethod.c
index 47c7b52..44b50a6 100644
@@ -596,6 +596,8 @@ cleanup:
/* On error, we must terminate the method properly */
+ if (thread)
It seems, if acpi_ds_create_walk_state() fails, acpi_ds_delete_walk_state() will be
So they are paired. Fixing this in acpi_ds_delete_walk_state() could help to fix all of
Given the fix is useful, why don't you do this in acpi_ds_delete_walk_state()?
Thanks and best regards