diff options
Diffstat (limited to 'drivers/acpi/acpica/exstoren.c')
-rw-r--r-- | drivers/acpi/acpica/exstoren.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/drivers/acpi/acpica/exstoren.c b/drivers/acpi/acpica/exstoren.c index 145d15305f70..608e838d537e 100644 --- a/drivers/acpi/acpica/exstoren.c +++ b/drivers/acpi/acpica/exstoren.c | |||
@@ -96,8 +96,7 @@ acpi_ex_resolve_object(union acpi_operand_object **source_desc_ptr, | |||
96 | * are all essentially the same. This case handles the | 96 | * are all essentially the same. This case handles the |
97 | * "interchangeable" types Integer, String, and Buffer. | 97 | * "interchangeable" types Integer, String, and Buffer. |
98 | */ | 98 | */ |
99 | if (ACPI_GET_OBJECT_TYPE(source_desc) == | 99 | if (source_desc->common.type == ACPI_TYPE_LOCAL_REFERENCE) { |
100 | ACPI_TYPE_LOCAL_REFERENCE) { | ||
101 | 100 | ||
102 | /* Resolve a reference object first */ | 101 | /* Resolve a reference object first */ |
103 | 102 | ||
@@ -117,13 +116,11 @@ acpi_ex_resolve_object(union acpi_operand_object **source_desc_ptr, | |||
117 | 116 | ||
118 | /* Must have a Integer, Buffer, or String */ | 117 | /* Must have a Integer, Buffer, or String */ |
119 | 118 | ||
120 | if ((ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_INTEGER) && | 119 | if ((source_desc->common.type != ACPI_TYPE_INTEGER) && |
121 | (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_BUFFER) && | 120 | (source_desc->common.type != ACPI_TYPE_BUFFER) && |
122 | (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_STRING) && | 121 | (source_desc->common.type != ACPI_TYPE_STRING) && |
123 | !((ACPI_GET_OBJECT_TYPE(source_desc) == | 122 | !((source_desc->common.type == ACPI_TYPE_LOCAL_REFERENCE) && |
124 | ACPI_TYPE_LOCAL_REFERENCE) | 123 | (source_desc->reference.class == ACPI_REFCLASS_TABLE))) { |
125 | && (source_desc->reference.class == | ||
126 | ACPI_REFCLASS_TABLE))) { | ||
127 | 124 | ||
128 | /* Conversion successful but still not a valid type */ | 125 | /* Conversion successful but still not a valid type */ |
129 | 126 | ||
@@ -218,8 +215,7 @@ acpi_ex_store_object_to_object(union acpi_operand_object *source_desc, | |||
218 | return_ACPI_STATUS(status); | 215 | return_ACPI_STATUS(status); |
219 | } | 216 | } |
220 | 217 | ||
221 | if (ACPI_GET_OBJECT_TYPE(source_desc) != | 218 | if (source_desc->common.type != dest_desc->common.type) { |
222 | ACPI_GET_OBJECT_TYPE(dest_desc)) { | ||
223 | /* | 219 | /* |
224 | * The source type does not match the type of the destination. | 220 | * The source type does not match the type of the destination. |
225 | * Perform the "implicit conversion" of the source to the current type | 221 | * Perform the "implicit conversion" of the source to the current type |
@@ -229,11 +225,10 @@ acpi_ex_store_object_to_object(union acpi_operand_object *source_desc, | |||
229 | * Otherwise, actual_src_desc is a temporary object to hold the | 225 | * Otherwise, actual_src_desc is a temporary object to hold the |
230 | * converted object. | 226 | * converted object. |
231 | */ | 227 | */ |
232 | status = | 228 | status = acpi_ex_convert_to_target_type(dest_desc->common.type, |
233 | acpi_ex_convert_to_target_type(ACPI_GET_OBJECT_TYPE | 229 | source_desc, |
234 | (dest_desc), source_desc, | 230 | &actual_src_desc, |
235 | &actual_src_desc, | 231 | walk_state); |
236 | walk_state); | ||
237 | if (ACPI_FAILURE(status)) { | 232 | if (ACPI_FAILURE(status)) { |
238 | return_ACPI_STATUS(status); | 233 | return_ACPI_STATUS(status); |
239 | } | 234 | } |
@@ -252,7 +247,7 @@ acpi_ex_store_object_to_object(union acpi_operand_object *source_desc, | |||
252 | * We now have two objects of identical types, and we can perform a | 247 | * We now have two objects of identical types, and we can perform a |
253 | * copy of the *value* of the source object. | 248 | * copy of the *value* of the source object. |
254 | */ | 249 | */ |
255 | switch (ACPI_GET_OBJECT_TYPE(dest_desc)) { | 250 | switch (dest_desc->common.type) { |
256 | case ACPI_TYPE_INTEGER: | 251 | case ACPI_TYPE_INTEGER: |
257 | 252 | ||
258 | dest_desc->integer.value = actual_src_desc->integer.value; | 253 | dest_desc->integer.value = actual_src_desc->integer.value; |