aboutsummaryrefslogtreecommitdiff
path: root/drivers/acpi/acpica/dsdebug.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/acpica/dsdebug.c')
-rw-r--r--drivers/acpi/acpica/dsdebug.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/acpi/acpica/dsdebug.c b/drivers/acpi/acpica/dsdebug.c
index 21c6cefd267e..7df9b50e17a7 100644
--- a/drivers/acpi/acpica/dsdebug.c
+++ b/drivers/acpi/acpica/dsdebug.c
@@ -127,6 +127,8 @@ acpi_ds_dump_method_stack(acpi_status status,
struct acpi_thread_state *thread;
struct acpi_walk_state *next_walk_state;
struct acpi_namespace_node *previous_method = NULL;
+ union acpi_operand_object *method_desc;
+ char *pathname = NULL;
ACPI_FUNCTION_TRACE(ds_dump_method_stack);
@@ -170,6 +172,28 @@ acpi_ds_dump_method_stack(acpi_status status,
/* Walk list of linked walk states */
while (next_walk_state) {
+ method_desc = next_walk_state->method_desc;
+ if (method_desc && method_desc->method.node) {
+ pathname = acpi_ns_get_normalized_pathname((struct
+ acpi_namespace_node
+ *)
+ method_desc->
+ method.node,
+ TRUE);
+ }
+ if (pathname) {
+ ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT,
+ "End method [0x%p:%s] execution.\n",
+ method_desc->method.aml_start,
+ pathname));
+ ACPI_FREE(pathname);
+ pathname = NULL;
+ } else {
+ ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT,
+ "End method [0x%p] execution.\n",
+ method_desc->method.aml_start));
+ }
+
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
" Method [%4.4s] executing: ",
acpi_ut_get_node_name(next_walk_state->