aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/executer/exstore.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/acpi/executer/exstore.c b/drivers/acpi/executer/exstore.c
index 725614e277f8..36c0fccb137a 100644
--- a/drivers/acpi/executer/exstore.c
+++ b/drivers/acpi/executer/exstore.c
@@ -603,10 +603,17 @@ acpi_ex_store_object_to_node(union acpi_operand_object *source_desc,
603 603
604 /* If no implicit conversion, drop into the default case below */ 604 /* If no implicit conversion, drop into the default case below */
605 605
606 if ((!implicit_conversion) || (walk_state->opcode == AML_COPY_OP)) { 606 if ((!implicit_conversion) ||
607 607 ((walk_state->opcode == AML_COPY_OP) &&
608 /* Force execution of default (no implicit conversion) */ 608 (target_type != ACPI_TYPE_LOCAL_REGION_FIELD) &&
609 609 (target_type != ACPI_TYPE_LOCAL_BANK_FIELD) &&
610 (target_type != ACPI_TYPE_LOCAL_INDEX_FIELD))) {
611 /*
612 * Force execution of default (no implicit conversion). Note:
613 * copy_object does not perform an implicit conversion, as per the ACPI
614 * spec -- except in case of region/bank/index fields -- because these
615 * objects must retain their original type permanently.
616 */
610 target_type = ACPI_TYPE_ANY; 617 target_type = ACPI_TYPE_ANY;
611 } 618 }
612 619