aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/resources
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-05-12 17:12:00 -0400
committerLen Brown <len.brown@intel.com>2006-06-14 02:34:48 -0400
commit958dd242b691f64ab4632b4903dbb1e16fee8269 (patch)
treeddf4932fb4e3023dd0d1914571f17f2e3b03978d /drivers/acpi/resources
parentb229cf92eee616c7cb5ad8cdb35a19b119f00bc8 (diff)
ACPI: ACPICA 20060512
Replaced the acpi_os_queue_for_execution() with a new interface named acpi_os_execute(). The major difference is that the new interface does not have a Priority parameter, this appeared to be useless and has been replaced by a Type parameter. The Type tells the OS what type of execution is being requested, such as global lock handler, notify handler, GPE handler, etc. This allows the host to queue and execute the request as appropriate for the request type, possibly using different work queues and different priorities for the various request types. This enables fixes for multithreading deadlock problems such as http://bugzilla.kernel.org/show_bug.cgi?id=5534 (Alexey Starikovskiy and Bob Moore) Fixed a possible memory leak associated with the support for the so-called "implicit return" ACPI extension. Reported by FreeBSD (Fiodor Suietov) http://bugzilla.kernel.org/show_bug.cgi?id=6514 Fixed a problem with the Load() operator where a table load from an operation region could overwrite an internal table buffer by up to 7 bytes and cause alignment faults on IPF systems. (With assistance from Luming Yu) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/resources')
-rw-r--r--drivers/acpi/resources/rscalc.c4
-rw-r--r--drivers/acpi/resources/rscreate.c2
-rw-r--r--drivers/acpi/resources/rsutils.c5
3 files changed, 6 insertions, 5 deletions
diff --git a/drivers/acpi/resources/rscalc.c b/drivers/acpi/resources/rscalc.c
index a573ad5d41db..cf87b0230026 100644
--- a/drivers/acpi/resources/rscalc.c
+++ b/drivers/acpi/resources/rscalc.c
@@ -451,7 +451,7 @@ acpi_rs_get_list_length(u8 * aml_buffer,
451 */ 451 */
452 buffer_size = acpi_gbl_resource_struct_sizes[resource_index] + 452 buffer_size = acpi_gbl_resource_struct_sizes[resource_index] +
453 extra_struct_bytes; 453 extra_struct_bytes;
454 buffer_size = ACPI_ROUND_UP_TO_NATIVE_WORD(buffer_size); 454 buffer_size = (u32) ACPI_ROUND_UP_TO_NATIVE_WORD(buffer_size);
455 455
456 *size_needed += buffer_size; 456 *size_needed += buffer_size;
457 457
@@ -579,7 +579,7 @@ acpi_rs_get_pci_routing_table_length(union acpi_operand_object *package_object,
579 579
580 /* Round up the size since each element must be aligned */ 580 /* Round up the size since each element must be aligned */
581 581
582 temp_size_needed = ACPI_ROUND_UP_to_64_bIT(temp_size_needed); 582 temp_size_needed = ACPI_ROUND_UP_TO_64BIT(temp_size_needed);
583 583
584 /* Point to the next union acpi_operand_object */ 584 /* Point to the next union acpi_operand_object */
585 585
diff --git a/drivers/acpi/resources/rscreate.c b/drivers/acpi/resources/rscreate.c
index 4c322daaf885..008058acdd39 100644
--- a/drivers/acpi/resources/rscreate.c
+++ b/drivers/acpi/resources/rscreate.c
@@ -335,7 +335,7 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
335 /* Now align the current length */ 335 /* Now align the current length */
336 336
337 user_prt->length = 337 user_prt->length =
338 (u32) ACPI_ROUND_UP_to_64_bIT(user_prt->length); 338 (u32) ACPI_ROUND_UP_TO_64BIT(user_prt->length);
339 339
340 /* 4) Fourth subobject: Dereference the PRT.source_index */ 340 /* 4) Fourth subobject: Dereference the PRT.source_index */
341 341
diff --git a/drivers/acpi/resources/rsutils.c b/drivers/acpi/resources/rsutils.c
index aa98eebc9b78..0e493f2fec4d 100644
--- a/drivers/acpi/resources/rsutils.c
+++ b/drivers/acpi/resources/rsutils.c
@@ -354,6 +354,7 @@ acpi_rs_get_resource_source(acpi_rs_length resource_length,
354 * Zero the entire area of the buffer. 354 * Zero the entire area of the buffer.
355 */ 355 */
356 total_length = 356 total_length =
357 (u32)
357 ACPI_STRLEN(ACPI_CAST_PTR(char, &aml_resource_source[1])) + 358 ACPI_STRLEN(ACPI_CAST_PTR(char, &aml_resource_source[1])) +
358 1; 359 1;
359 total_length = (u32) ACPI_ROUND_UP_TO_NATIVE_WORD(total_length); 360 total_length = (u32) ACPI_ROUND_UP_TO_NATIVE_WORD(total_length);
@@ -528,7 +529,7 @@ acpi_rs_get_crs_method_data(acpi_handle handle, struct acpi_buffer *ret_buffer)
528 */ 529 */
529 status = acpi_rs_create_resource_list(obj_desc, ret_buffer); 530 status = acpi_rs_create_resource_list(obj_desc, ret_buffer);
530 531
531 /* on exit, we must delete the object returned by evaluate_object */ 532 /* On exit, we must delete the object returned by evaluate_object */
532 533
533 acpi_ut_remove_reference(obj_desc); 534 acpi_ut_remove_reference(obj_desc);
534 return_ACPI_STATUS(status); 535 return_ACPI_STATUS(status);
@@ -578,7 +579,7 @@ acpi_rs_get_prs_method_data(acpi_handle handle, struct acpi_buffer *ret_buffer)
578 */ 579 */
579 status = acpi_rs_create_resource_list(obj_desc, ret_buffer); 580 status = acpi_rs_create_resource_list(obj_desc, ret_buffer);
580 581
581 /* on exit, we must delete the object returned by evaluate_object */ 582 /* On exit, we must delete the object returned by evaluate_object */
582 583
583 acpi_ut_remove_reference(obj_desc); 584 acpi_ut_remove_reference(obj_desc);
584 return_ACPI_STATUS(status); 585 return_ACPI_STATUS(status);