diff options
Diffstat (limited to 'drivers/acpi/dispatcher/dsobject.c')
| -rw-r--r-- | drivers/acpi/dispatcher/dsobject.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/drivers/acpi/dispatcher/dsobject.c b/drivers/acpi/dispatcher/dsobject.c index 8b21f0f9e517..72190abb1d59 100644 --- a/drivers/acpi/dispatcher/dsobject.c +++ b/drivers/acpi/dispatcher/dsobject.c | |||
| @@ -81,7 +81,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state, | |||
| 81 | union acpi_operand_object *obj_desc; | 81 | union acpi_operand_object *obj_desc; |
| 82 | acpi_status status; | 82 | acpi_status status; |
| 83 | 83 | ||
| 84 | ACPI_FUNCTION_TRACE("ds_build_internal_object"); | 84 | ACPI_FUNCTION_TRACE(ds_build_internal_object); |
| 85 | 85 | ||
| 86 | *obj_desc_ptr = NULL; | 86 | *obj_desc_ptr = NULL; |
| 87 | if (op->common.aml_opcode == AML_INT_NAMEPATH_OP) { | 87 | if (op->common.aml_opcode == AML_INT_NAMEPATH_OP) { |
| @@ -103,6 +103,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state, | |||
| 103 | common. | 103 | common. |
| 104 | node))); | 104 | node))); |
| 105 | if (ACPI_FAILURE(status)) { | 105 | if (ACPI_FAILURE(status)) { |
| 106 | |||
| 106 | /* Check if we are resolving a named reference within a package */ | 107 | /* Check if we are resolving a named reference within a package */ |
| 107 | 108 | ||
| 108 | if ((status == AE_NOT_FOUND) | 109 | if ((status == AE_NOT_FOUND) |
| @@ -186,7 +187,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state, | |||
| 186 | union acpi_parse_object *byte_list; | 187 | union acpi_parse_object *byte_list; |
| 187 | u32 byte_list_length = 0; | 188 | u32 byte_list_length = 0; |
| 188 | 189 | ||
| 189 | ACPI_FUNCTION_TRACE("ds_build_internal_buffer_obj"); | 190 | ACPI_FUNCTION_TRACE(ds_build_internal_buffer_obj); |
| 190 | 191 | ||
| 191 | /* | 192 | /* |
| 192 | * If we are evaluating a Named buffer object "Name (xxxx, Buffer)". | 193 | * If we are evaluating a Named buffer object "Name (xxxx, Buffer)". |
| @@ -195,6 +196,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state, | |||
| 195 | */ | 196 | */ |
| 196 | obj_desc = *obj_desc_ptr; | 197 | obj_desc = *obj_desc_ptr; |
| 197 | if (!obj_desc) { | 198 | if (!obj_desc) { |
| 199 | |||
| 198 | /* Create a new buffer object */ | 200 | /* Create a new buffer object */ |
| 199 | 201 | ||
| 200 | obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_BUFFER); | 202 | obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_BUFFER); |
| @@ -243,7 +245,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state, | |||
| 243 | "Buffer defined with zero length in AML, creating\n")); | 245 | "Buffer defined with zero length in AML, creating\n")); |
| 244 | } else { | 246 | } else { |
| 245 | obj_desc->buffer.pointer = | 247 | obj_desc->buffer.pointer = |
| 246 | ACPI_MEM_CALLOCATE(obj_desc->buffer.length); | 248 | ACPI_ALLOCATE_ZEROED(obj_desc->buffer.length); |
| 247 | if (!obj_desc->buffer.pointer) { | 249 | if (!obj_desc->buffer.pointer) { |
| 248 | acpi_ut_delete_object_desc(obj_desc); | 250 | acpi_ut_delete_object_desc(obj_desc); |
| 249 | return_ACPI_STATUS(AE_NO_MEMORY); | 251 | return_ACPI_STATUS(AE_NO_MEMORY); |
| @@ -291,7 +293,7 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state, | |||
| 291 | acpi_status status = AE_OK; | 293 | acpi_status status = AE_OK; |
| 292 | acpi_native_uint i; | 294 | acpi_native_uint i; |
| 293 | 295 | ||
| 294 | ACPI_FUNCTION_TRACE("ds_build_internal_package_obj"); | 296 | ACPI_FUNCTION_TRACE(ds_build_internal_package_obj); |
| 295 | 297 | ||
| 296 | /* Find the parent of a possibly nested package */ | 298 | /* Find the parent of a possibly nested package */ |
| 297 | 299 | ||
| @@ -339,9 +341,10 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state, | |||
| 339 | * individual objects). Add an extra pointer slot so | 341 | * individual objects). Add an extra pointer slot so |
| 340 | * that the list is always null terminated. | 342 | * that the list is always null terminated. |
| 341 | */ | 343 | */ |
| 342 | obj_desc->package.elements = ACPI_MEM_CALLOCATE(((acpi_size) obj_desc-> | 344 | obj_desc->package.elements = ACPI_ALLOCATE_ZEROED(((acpi_size) |
| 343 | package.count + | 345 | obj_desc->package. |
| 344 | 1) * sizeof(void *)); | 346 | count + |
| 347 | 1) * sizeof(void *)); | ||
| 345 | 348 | ||
| 346 | if (!obj_desc->package.elements) { | 349 | if (!obj_desc->package.elements) { |
| 347 | acpi_ut_delete_object_desc(obj_desc); | 350 | acpi_ut_delete_object_desc(obj_desc); |
| @@ -355,6 +358,7 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state, | |||
| 355 | arg = arg->common.next; | 358 | arg = arg->common.next; |
| 356 | for (i = 0; arg; i++) { | 359 | for (i = 0; arg; i++) { |
| 357 | if (arg->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { | 360 | if (arg->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { |
| 361 | |||
| 358 | /* Object (package or buffer) is already built */ | 362 | /* Object (package or buffer) is already built */ |
| 359 | 363 | ||
| 360 | obj_desc->package.elements[i] = | 364 | obj_desc->package.elements[i] = |
| @@ -396,7 +400,7 @@ acpi_ds_create_node(struct acpi_walk_state *walk_state, | |||
| 396 | acpi_status status; | 400 | acpi_status status; |
| 397 | union acpi_operand_object *obj_desc; | 401 | union acpi_operand_object *obj_desc; |
| 398 | 402 | ||
| 399 | ACPI_FUNCTION_TRACE_PTR("ds_create_node", op); | 403 | ACPI_FUNCTION_TRACE_PTR(ds_create_node, op); |
| 400 | 404 | ||
| 401 | /* | 405 | /* |
| 402 | * Because of the execution pass through the non-control-method | 406 | * Because of the execution pass through the non-control-method |
| @@ -408,6 +412,7 @@ acpi_ds_create_node(struct acpi_walk_state *walk_state, | |||
| 408 | } | 412 | } |
| 409 | 413 | ||
| 410 | if (!op->common.value.arg) { | 414 | if (!op->common.value.arg) { |
| 415 | |||
| 411 | /* No arguments, there is nothing to do */ | 416 | /* No arguments, there is nothing to do */ |
| 412 | 417 | ||
| 413 | return_ACPI_STATUS(AE_OK); | 418 | return_ACPI_STATUS(AE_OK); |
| @@ -464,11 +469,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state, | |||
| 464 | union acpi_operand_object *obj_desc; | 469 | union acpi_operand_object *obj_desc; |
| 465 | acpi_status status = AE_OK; | 470 | acpi_status status = AE_OK; |
| 466 | 471 | ||
| 467 | ACPI_FUNCTION_TRACE("ds_init_object_from_op"); | 472 | ACPI_FUNCTION_TRACE(ds_init_object_from_op); |
| 468 | 473 | ||
| 469 | obj_desc = *ret_obj_desc; | 474 | obj_desc = *ret_obj_desc; |
| 470 | op_info = acpi_ps_get_opcode_info(opcode); | 475 | op_info = acpi_ps_get_opcode_info(opcode); |
| 471 | if (op_info->class == AML_CLASS_UNKNOWN) { | 476 | if (op_info->class == AML_CLASS_UNKNOWN) { |
| 477 | |||
| 472 | /* Unknown opcode */ | 478 | /* Unknown opcode */ |
| 473 | 479 | ||
| 474 | return_ACPI_STATUS(AE_TYPE); | 480 | return_ACPI_STATUS(AE_TYPE); |
| @@ -626,6 +632,7 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state, | |||
| 626 | default: /* Other literals, etc.. */ | 632 | default: /* Other literals, etc.. */ |
| 627 | 633 | ||
| 628 | if (op->common.aml_opcode == AML_INT_NAMEPATH_OP) { | 634 | if (op->common.aml_opcode == AML_INT_NAMEPATH_OP) { |
| 635 | |||
| 629 | /* Node was saved in Op */ | 636 | /* Node was saved in Op */ |
| 630 | 637 | ||
| 631 | obj_desc->reference.node = op->common.node; | 638 | obj_desc->reference.node = op->common.node; |
