diff options
author | Lin Ming <ming.m.lin@intel.com> | 2008-04-10 11:06:43 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-04-22 14:29:31 -0400 |
commit | a3df4dadd446c0d7195f2bbe86dd5174426d8090 (patch) | |
tree | f88267fb60e64c5c178ff16568148f45b9326546 /drivers/acpi/executer/exstore.c | |
parent | 1d5b285da1893b90507b081664ac27f1a8a3dc5b (diff) |
ACPICA: Update behavior of CopyObject to match ACPI spec
Fixed a problem where a CopyObject to RegionField, BankField, and
IndexField objects did not perform an implicit conversion as it
should. These types must retain their initial type permanently as
per the ACPI specification. However, a CopyObject to all other
object types should not perform an implicit conversion, as per
the ACPI specification.
http://www.acpica.org/bugzilla/show_bug.cgi?id=388
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/executer/exstore.c')
-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 | ||