diff options
Diffstat (limited to 'drivers/acpi/acpica/dsmethod.c')
-rw-r--r-- | drivers/acpi/acpica/dsmethod.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/drivers/acpi/acpica/dsmethod.c b/drivers/acpi/acpica/dsmethod.c index 49ba082ad379..6585e8e37c8e 100644 --- a/drivers/acpi/acpica/dsmethod.c +++ b/drivers/acpi/acpica/dsmethod.c | |||
@@ -118,10 +118,9 @@ acpi_ds_auto_serialize_method(struct acpi_namespace_node *node, | |||
118 | return_ACPI_STATUS(AE_NO_MEMORY); | 118 | return_ACPI_STATUS(AE_NO_MEMORY); |
119 | } | 119 | } |
120 | 120 | ||
121 | status = | 121 | status = acpi_ds_init_aml_walk(walk_state, op, node, |
122 | acpi_ds_init_aml_walk(walk_state, op, node, | 122 | obj_desc->method.aml_start, |
123 | obj_desc->method.aml_start, | 123 | obj_desc->method.aml_length, NULL, 0); |
124 | obj_desc->method.aml_length, NULL, 0); | ||
125 | if (ACPI_FAILURE(status)) { | 124 | if (ACPI_FAILURE(status)) { |
126 | acpi_ds_delete_walk_state(walk_state); | 125 | acpi_ds_delete_walk_state(walk_state); |
127 | acpi_ps_free_op(op); | 126 | acpi_ps_free_op(op); |
@@ -375,7 +374,8 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node, | |||
375 | && (walk_state->thread->current_sync_level > | 374 | && (walk_state->thread->current_sync_level > |
376 | obj_desc->method.mutex->mutex.sync_level)) { | 375 | obj_desc->method.mutex->mutex.sync_level)) { |
377 | ACPI_ERROR((AE_INFO, | 376 | ACPI_ERROR((AE_INFO, |
378 | "Cannot acquire Mutex for method [%4.4s], current SyncLevel is too large (%u)", | 377 | "Cannot acquire Mutex for method [%4.4s]" |
378 | ", current SyncLevel is too large (%u)", | ||
379 | acpi_ut_get_node_name(method_node), | 379 | acpi_ut_get_node_name(method_node), |
380 | walk_state->thread->current_sync_level)); | 380 | walk_state->thread->current_sync_level)); |
381 | 381 | ||
@@ -512,16 +512,18 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
512 | 512 | ||
513 | /* Init for new method, possibly wait on method mutex */ | 513 | /* Init for new method, possibly wait on method mutex */ |
514 | 514 | ||
515 | status = acpi_ds_begin_method_execution(method_node, obj_desc, | 515 | status = |
516 | this_walk_state); | 516 | acpi_ds_begin_method_execution(method_node, obj_desc, |
517 | this_walk_state); | ||
517 | if (ACPI_FAILURE(status)) { | 518 | if (ACPI_FAILURE(status)) { |
518 | return_ACPI_STATUS(status); | 519 | return_ACPI_STATUS(status); |
519 | } | 520 | } |
520 | 521 | ||
521 | /* Begin method parse/execution. Create a new walk state */ | 522 | /* Begin method parse/execution. Create a new walk state */ |
522 | 523 | ||
523 | next_walk_state = acpi_ds_create_walk_state(obj_desc->method.owner_id, | 524 | next_walk_state = |
524 | NULL, obj_desc, thread); | 525 | acpi_ds_create_walk_state(obj_desc->method.owner_id, NULL, obj_desc, |
526 | thread); | ||
525 | if (!next_walk_state) { | 527 | if (!next_walk_state) { |
526 | status = AE_NO_MEMORY; | 528 | status = AE_NO_MEMORY; |
527 | goto cleanup; | 529 | goto cleanup; |
@@ -808,7 +810,8 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
808 | info_flags & ACPI_METHOD_SERIALIZED_PENDING) { | 810 | info_flags & ACPI_METHOD_SERIALIZED_PENDING) { |
809 | if (walk_state) { | 811 | if (walk_state) { |
810 | ACPI_INFO((AE_INFO, | 812 | ACPI_INFO((AE_INFO, |
811 | "Marking method %4.4s as Serialized because of AE_ALREADY_EXISTS error", | 813 | "Marking method %4.4s as Serialized " |
814 | "because of AE_ALREADY_EXISTS error", | ||
812 | walk_state->method_node->name. | 815 | walk_state->method_node->name. |
813 | ascii)); | 816 | ascii)); |
814 | } | 817 | } |
@@ -826,6 +829,7 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | |||
826 | */ | 829 | */ |
827 | method_desc->method.info_flags &= | 830 | method_desc->method.info_flags &= |
828 | ~ACPI_METHOD_SERIALIZED_PENDING; | 831 | ~ACPI_METHOD_SERIALIZED_PENDING; |
832 | |||
829 | method_desc->method.info_flags |= | 833 | method_desc->method.info_flags |= |
830 | (ACPI_METHOD_SERIALIZED | | 834 | (ACPI_METHOD_SERIALIZED | |
831 | ACPI_METHOD_IGNORE_SYNC_LEVEL); | 835 | ACPI_METHOD_IGNORE_SYNC_LEVEL); |