diff options
-rw-r--r-- | drivers/acpi/executer/exstore.c | 15 |
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 | ||