diff options
Diffstat (limited to 'drivers/acpi/dispatcher/dsmethod.c')
-rw-r--r-- | drivers/acpi/dispatcher/dsmethod.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/drivers/acpi/dispatcher/dsmethod.c b/drivers/acpi/dispatcher/dsmethod.c index a39a33f4847a..cf888add3191 100644 --- a/drivers/acpi/dispatcher/dsmethod.c +++ b/drivers/acpi/dispatcher/dsmethod.c | |||
@@ -134,7 +134,7 @@ acpi_ds_create_method_mutex(union acpi_operand_object *method_desc) | |||
134 | union acpi_operand_object *mutex_desc; | 134 | union acpi_operand_object *mutex_desc; |
135 | acpi_status status; | 135 | acpi_status status; |
136 | 136 | ||
137 | ACPI_FUNCTION_NAME(ds_create_method_mutex); | 137 | ACPI_FUNCTION_TRACE(ds_create_method_mutex); |
138 | 138 | ||
139 | /* Create the new mutex object */ | 139 | /* Create the new mutex object */ |
140 | 140 | ||
@@ -493,7 +493,7 @@ acpi_ds_restart_control_method(struct acpi_walk_state *walk_state, | |||
493 | 493 | ||
494 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 494 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
495 | "****Restart [%4.4s] Op %p ReturnValueFromCallee %p\n", | 495 | "****Restart [%4.4s] Op %p ReturnValueFromCallee %p\n", |
496 | (char *)&walk_state->method_node->name, | 496 | acpi_ut_get_node_name(walk_state->method_node), |
497 | walk_state->method_call_op, return_desc)); | 497 | walk_state->method_call_op, return_desc)); |
498 | 498 | ||
499 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 499 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
@@ -610,6 +610,7 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
610 | 610 | ||
611 | acpi_os_release_mutex(method_desc->method.mutex->mutex. | 611 | acpi_os_release_mutex(method_desc->method.mutex->mutex. |
612 | os_mutex); | 612 | os_mutex); |
613 | method_desc->method.mutex->mutex.owner_thread = NULL; | ||
613 | } | 614 | } |
614 | } | 615 | } |
615 | 616 | ||
@@ -620,27 +621,11 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
620 | */ | 621 | */ |
621 | method_node = walk_state->method_node; | 622 | method_node = walk_state->method_node; |
622 | 623 | ||
623 | /* Lock namespace for possible update */ | ||
624 | |||
625 | status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); | ||
626 | if (ACPI_FAILURE(status)) { | ||
627 | return_VOID; | ||
628 | } | ||
629 | |||
630 | /* | ||
631 | * Delete any namespace entries created immediately underneath | ||
632 | * the method | ||
633 | */ | ||
634 | if (method_node && method_node->child) { | ||
635 | acpi_ns_delete_namespace_subtree(method_node); | ||
636 | } | ||
637 | |||
638 | /* | 624 | /* |
639 | * Delete any namespace entries created anywhere else within | 625 | * Delete any namespace objects created anywhere within |
640 | * the namespace by the execution of this method | 626 | * the namespace by the execution of this method |
641 | */ | 627 | */ |
642 | acpi_ns_delete_namespace_by_owner(method_desc->method.owner_id); | 628 | acpi_ns_delete_namespace_by_owner(method_desc->method.owner_id); |
643 | status = acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); | ||
644 | } | 629 | } |
645 | 630 | ||
646 | /* Decrement the thread count on the method */ | 631 | /* Decrement the thread count on the method */ |