diff options
Diffstat (limited to 'drivers/acpi/dispatcher/dsmethod.c')
-rw-r--r-- | drivers/acpi/dispatcher/dsmethod.c | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/drivers/acpi/dispatcher/dsmethod.c b/drivers/acpi/dispatcher/dsmethod.c index 3db651c7f582..7a99740248c7 100644 --- a/drivers/acpi/dispatcher/dsmethod.c +++ b/drivers/acpi/dispatcher/dsmethod.c | |||
@@ -42,7 +42,6 @@ | |||
42 | */ | 42 | */ |
43 | 43 | ||
44 | #include <acpi/acpi.h> | 44 | #include <acpi/acpi.h> |
45 | #include <acpi/acparser.h> | ||
46 | #include <acpi/amlcode.h> | 45 | #include <acpi/amlcode.h> |
47 | #include <acpi/acdispat.h> | 46 | #include <acpi/acdispat.h> |
48 | #include <acpi/acinterp.h> | 47 | #include <acpi/acinterp.h> |
@@ -102,7 +101,7 @@ acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state) | |||
102 | walk_state->opcode, | 101 | walk_state->opcode, |
103 | walk_state->aml_offset, | 102 | walk_state->aml_offset, |
104 | NULL); | 103 | NULL); |
105 | (void)acpi_ex_enter_interpreter(); | 104 | acpi_ex_enter_interpreter(); |
106 | } | 105 | } |
107 | #ifdef ACPI_DISASSEMBLER | 106 | #ifdef ACPI_DISASSEMBLER |
108 | if (ACPI_FAILURE(status)) { | 107 | if (ACPI_FAILURE(status)) { |
@@ -535,7 +534,6 @@ void | |||
535 | acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | 534 | acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, |
536 | struct acpi_walk_state *walk_state) | 535 | struct acpi_walk_state *walk_state) |
537 | { | 536 | { |
538 | acpi_status status; | ||
539 | 537 | ||
540 | ACPI_FUNCTION_TRACE_PTR(ds_terminate_control_method, walk_state); | 538 | ACPI_FUNCTION_TRACE_PTR(ds_terminate_control_method, walk_state); |
541 | 539 | ||
@@ -550,29 +548,27 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
550 | /* Delete all arguments and locals */ | 548 | /* Delete all arguments and locals */ |
551 | 549 | ||
552 | acpi_ds_method_data_delete_all(walk_state); | 550 | acpi_ds_method_data_delete_all(walk_state); |
553 | } | ||
554 | 551 | ||
555 | /* | 552 | /* |
556 | * If method is serialized, release the mutex and restore the | 553 | * If method is serialized, release the mutex and restore the |
557 | * current sync level for this thread | 554 | * current sync level for this thread |
558 | */ | 555 | */ |
559 | if (method_desc->method.mutex) { | 556 | if (method_desc->method.mutex) { |
560 | 557 | ||
561 | /* Acquisition Depth handles recursive calls */ | 558 | /* Acquisition Depth handles recursive calls */ |
562 | 559 | ||
563 | method_desc->method.mutex->mutex.acquisition_depth--; | 560 | method_desc->method.mutex->mutex.acquisition_depth--; |
564 | if (!method_desc->method.mutex->mutex.acquisition_depth) { | 561 | if (!method_desc->method.mutex->mutex.acquisition_depth) { |
565 | walk_state->thread->current_sync_level = | 562 | walk_state->thread->current_sync_level = |
566 | method_desc->method.mutex->mutex. | 563 | method_desc->method.mutex->mutex. |
567 | original_sync_level; | 564 | original_sync_level; |
568 | 565 | ||
569 | acpi_os_release_mutex(method_desc->method.mutex->mutex. | 566 | acpi_os_release_mutex(method_desc->method. |
570 | os_mutex); | 567 | mutex->mutex.os_mutex); |
571 | method_desc->method.mutex->mutex.thread_id = 0; | 568 | method_desc->method.mutex->mutex.thread_id = 0; |
569 | } | ||
572 | } | 570 | } |
573 | } | ||
574 | 571 | ||
575 | if (walk_state) { | ||
576 | /* | 572 | /* |
577 | * Delete any namespace objects created anywhere within | 573 | * Delete any namespace objects created anywhere within |
578 | * the namespace by the execution of this method | 574 | * the namespace by the execution of this method |
@@ -613,7 +609,7 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
613 | */ | 609 | */ |
614 | if ((method_desc->method.method_flags & AML_METHOD_SERIALIZED) | 610 | if ((method_desc->method.method_flags & AML_METHOD_SERIALIZED) |
615 | && (!method_desc->method.mutex)) { | 611 | && (!method_desc->method.mutex)) { |
616 | status = acpi_ds_create_method_mutex(method_desc); | 612 | (void)acpi_ds_create_method_mutex(method_desc); |
617 | } | 613 | } |
618 | 614 | ||
619 | /* No more threads, we can free the owner_id */ | 615 | /* No more threads, we can free the owner_id */ |