diff options
author | Bob Moore <robert.moore@intel.com> | 2006-05-12 17:12:00 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-06-14 02:34:48 -0400 |
commit | 958dd242b691f64ab4632b4903dbb1e16fee8269 (patch) | |
tree | ddf4932fb4e3023dd0d1914571f17f2e3b03978d /drivers/acpi/resources | |
parent | b229cf92eee616c7cb5ad8cdb35a19b119f00bc8 (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.c | 4 | ||||
-rw-r--r-- | drivers/acpi/resources/rscreate.c | 2 | ||||
-rw-r--r-- | drivers/acpi/resources/rsutils.c | 5 |
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); |