diff options
Diffstat (limited to 'drivers/acpi/dispatcher/dsopcode.c')
-rw-r--r-- | drivers/acpi/dispatcher/dsopcode.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/acpi/dispatcher/dsopcode.c b/drivers/acpi/dispatcher/dsopcode.c index f501e083aac7..0c4630dc09f3 100644 --- a/drivers/acpi/dispatcher/dsopcode.c +++ b/drivers/acpi/dispatcher/dsopcode.c | |||
@@ -808,6 +808,12 @@ acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state, | |||
808 | 808 | ||
809 | /* The first operand (for all of these data objects) is the length */ | 809 | /* The first operand (for all of these data objects) is the length */ |
810 | 810 | ||
811 | /* | ||
812 | * Set proper index into operand stack for acpi_ds_obj_stack_push | ||
813 | * invoked inside acpi_ds_create_operand. | ||
814 | */ | ||
815 | walk_state->operand_index = walk_state->num_operands; | ||
816 | |||
811 | status = acpi_ds_create_operand(walk_state, op->common.value.arg, 1); | 817 | status = acpi_ds_create_operand(walk_state, op->common.value.arg, 1); |
812 | if (ACPI_FAILURE(status)) { | 818 | if (ACPI_FAILURE(status)) { |
813 | return_ACPI_STATUS(status); | 819 | return_ACPI_STATUS(status); |
@@ -1070,8 +1076,7 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state, | |||
1070 | * is set to anything other than zero! | 1076 | * is set to anything other than zero! |
1071 | */ | 1077 | */ |
1072 | walk_state->return_desc = walk_state->operands[0]; | 1078 | walk_state->return_desc = walk_state->operands[0]; |
1073 | } else if ((walk_state->results) && | 1079 | } else if (walk_state->result_count) { |
1074 | (walk_state->results->results.num_results > 0)) { | ||
1075 | 1080 | ||
1076 | /* Since we have a real Return(), delete any implicit return */ | 1081 | /* Since we have a real Return(), delete any implicit return */ |
1077 | 1082 | ||