diff options
author | Bob Moore <robert.moore@intel.com> | 2006-10-02 00:00:00 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-03-31 02:19:03 -0500 |
commit | 52fc0b026e99b5d5d585095148d997d5634bbc25 (patch) | |
tree | 7bf93132cfd3e6957308a84198ee159f7d43cf6f /drivers/acpi/tables/tbxfroot.c | |
parent | 46358614ed5b031797522f1020e989c959a8d8a6 (diff) |
[ACPI] ACPICA 20060210
Removed a couple of extraneous ACPI_ERROR messages that
appeared during normal execution. These became apparent
after the conversion from ACPI_DEBUG_PRINT.
Fixed a problem where the CreateField operator could hang
if the BitIndex or NumBits parameter referred to a named
object. From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5359
Fixed a problem where a DeRefOf operation on a buffer
object incorrectly failed with an exception. This also
fixes a couple of related RefOf and DeRefOf issues.
From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5360
http://bugzilla.kernel.org/show_bug.cgi?id=5387
http://bugzilla.kernel.org/show_bug.cgi?id=5392
Fixed a problem where the AE_BUFFER_LIMIT exception was
returned instead of AE_STRING_LIMIT on an out-of-bounds
Index() operation. From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5480
Implemented a memory cleanup at the end of the execution
of each iteration of an AML While() loop, preventing the
accumulation of outstanding objects. From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5427
Eliminated a chunk of duplicate code in the object
resolution code. From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5336
Fixed several warnings during the 64-bit code generation.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/tables/tbxfroot.c')
-rw-r--r-- | drivers/acpi/tables/tbxfroot.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/acpi/tables/tbxfroot.c b/drivers/acpi/tables/tbxfroot.c index a62db6af83c9..7f68b759f15a 100644 --- a/drivers/acpi/tables/tbxfroot.c +++ b/drivers/acpi/tables/tbxfroot.c | |||
@@ -75,6 +75,7 @@ acpi_status acpi_tb_validate_rsdp(struct rsdp_descriptor *rsdp) | |||
75 | * The signature and checksum must both be correct | 75 | * The signature and checksum must both be correct |
76 | */ | 76 | */ |
77 | if (ACPI_STRNCMP((char *)rsdp, RSDP_SIG, sizeof(RSDP_SIG) - 1) != 0) { | 77 | if (ACPI_STRNCMP((char *)rsdp, RSDP_SIG, sizeof(RSDP_SIG) - 1) != 0) { |
78 | |||
78 | /* Nope, BAD Signature */ | 79 | /* Nope, BAD Signature */ |
79 | 80 | ||
80 | return (AE_BAD_SIGNATURE); | 81 | return (AE_BAD_SIGNATURE); |
@@ -217,6 +218,7 @@ acpi_get_firmware_table(acpi_string signature, | |||
217 | /* Ensure that we have a RSDP */ | 218 | /* Ensure that we have a RSDP */ |
218 | 219 | ||
219 | if (!acpi_gbl_RSDP) { | 220 | if (!acpi_gbl_RSDP) { |
221 | |||
220 | /* Get the RSDP */ | 222 | /* Get the RSDP */ |
221 | 223 | ||
222 | status = acpi_os_get_root_pointer(flags, &address); | 224 | status = acpi_os_get_root_pointer(flags, &address); |
@@ -327,10 +329,12 @@ acpi_get_firmware_table(acpi_string signature, | |||
327 | /* Compare table signatures and table instance */ | 329 | /* Compare table signatures and table instance */ |
328 | 330 | ||
329 | if (!ACPI_STRNCMP(header->signature, signature, ACPI_NAME_SIZE)) { | 331 | if (!ACPI_STRNCMP(header->signature, signature, ACPI_NAME_SIZE)) { |
332 | |||
330 | /* An instance of the table was found */ | 333 | /* An instance of the table was found */ |
331 | 334 | ||
332 | j++; | 335 | j++; |
333 | if (j >= instance) { | 336 | if (j >= instance) { |
337 | |||
334 | /* Found the correct instance, get the entire table */ | 338 | /* Found the correct instance, get the entire table */ |
335 | 339 | ||
336 | status = | 340 | status = |
@@ -434,12 +438,14 @@ static u8 *acpi_tb_scan_memory_for_rsdp(u8 * start_address, u32 length) | |||
434 | 438 | ||
435 | for (mem_rover = start_address; mem_rover < end_address; | 439 | for (mem_rover = start_address; mem_rover < end_address; |
436 | mem_rover += ACPI_RSDP_SCAN_STEP) { | 440 | mem_rover += ACPI_RSDP_SCAN_STEP) { |
441 | |||
437 | /* The RSDP signature and checksum must both be correct */ | 442 | /* The RSDP signature and checksum must both be correct */ |
438 | 443 | ||
439 | status = | 444 | status = |
440 | acpi_tb_validate_rsdp(ACPI_CAST_PTR | 445 | acpi_tb_validate_rsdp(ACPI_CAST_PTR |
441 | (struct rsdp_descriptor, mem_rover)); | 446 | (struct rsdp_descriptor, mem_rover)); |
442 | if (ACPI_SUCCESS(status)) { | 447 | if (ACPI_SUCCESS(status)) { |
448 | |||
443 | /* Sig and checksum valid, we have found a real RSDP */ | 449 | /* Sig and checksum valid, we have found a real RSDP */ |
444 | 450 | ||
445 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 451 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
@@ -495,6 +501,7 @@ acpi_tb_find_rsdp(struct acpi_table_desc *table_info, u32 flags) | |||
495 | * Scan supports either logical addressing or physical addressing | 501 | * Scan supports either logical addressing or physical addressing |
496 | */ | 502 | */ |
497 | if ((flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) { | 503 | if ((flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) { |
504 | |||
498 | /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */ | 505 | /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */ |
499 | 506 | ||
500 | status = acpi_os_map_memory((acpi_physical_address) | 507 | status = acpi_os_map_memory((acpi_physical_address) |
@@ -542,6 +549,7 @@ acpi_tb_find_rsdp(struct acpi_table_desc *table_info, u32 flags) | |||
542 | acpi_os_unmap_memory(table_ptr, ACPI_EBDA_WINDOW_SIZE); | 549 | acpi_os_unmap_memory(table_ptr, ACPI_EBDA_WINDOW_SIZE); |
543 | 550 | ||
544 | if (mem_rover) { | 551 | if (mem_rover) { |
552 | |||
545 | /* Return the physical address */ | 553 | /* Return the physical address */ |
546 | 554 | ||
547 | physical_address += | 555 | physical_address += |
@@ -576,6 +584,7 @@ acpi_tb_find_rsdp(struct acpi_table_desc *table_info, u32 flags) | |||
576 | acpi_os_unmap_memory(table_ptr, ACPI_HI_RSDP_WINDOW_SIZE); | 584 | acpi_os_unmap_memory(table_ptr, ACPI_HI_RSDP_WINDOW_SIZE); |
577 | 585 | ||
578 | if (mem_rover) { | 586 | if (mem_rover) { |
587 | |||
579 | /* Return the physical address */ | 588 | /* Return the physical address */ |
580 | 589 | ||
581 | physical_address = | 590 | physical_address = |
@@ -609,6 +618,7 @@ acpi_tb_find_rsdp(struct acpi_table_desc *table_info, u32 flags) | |||
609 | (physical_address), | 618 | (physical_address), |
610 | ACPI_EBDA_WINDOW_SIZE); | 619 | ACPI_EBDA_WINDOW_SIZE); |
611 | if (mem_rover) { | 620 | if (mem_rover) { |
621 | |||
612 | /* Return the physical address */ | 622 | /* Return the physical address */ |
613 | 623 | ||
614 | table_info->physical_address = | 624 | table_info->physical_address = |
@@ -624,6 +634,7 @@ acpi_tb_find_rsdp(struct acpi_table_desc *table_info, u32 flags) | |||
624 | (ACPI_HI_RSDP_WINDOW_BASE), | 634 | (ACPI_HI_RSDP_WINDOW_BASE), |
625 | ACPI_HI_RSDP_WINDOW_SIZE); | 635 | ACPI_HI_RSDP_WINDOW_SIZE); |
626 | if (mem_rover) { | 636 | if (mem_rover) { |
637 | |||
627 | /* Found it, return the physical address */ | 638 | /* Found it, return the physical address */ |
628 | 639 | ||
629 | table_info->physical_address = | 640 | table_info->physical_address = |