aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica/tbutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/acpica/tbutils.c')
-rw-r--r--drivers/acpi/acpica/tbutils.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
index a0b424356b98..dc45b49e5cb9 100644
--- a/drivers/acpi/acpica/tbutils.c
+++ b/drivers/acpi/acpica/tbutils.c
@@ -413,7 +413,8 @@ acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size)
413 } else { 413 } else {
414 /* 414 /*
415 * 32-bit platform, XSDT: Truncate 64-bit to 32-bit and return 415 * 32-bit platform, XSDT: Truncate 64-bit to 32-bit and return
416 * 64-bit platform, XSDT: Move (unaligned) 64-bit to local, return 64-bit 416 * 64-bit platform, XSDT: Move (unaligned) 64-bit to local,
417 * return 64-bit
417 */ 418 */
418 ACPI_MOVE_64_TO_64(&address64, table_entry); 419 ACPI_MOVE_64_TO_64(&address64, table_entry);
419 420
@@ -423,7 +424,8 @@ acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size)
423 /* Will truncate 64-bit address to 32 bits, issue warning */ 424 /* Will truncate 64-bit address to 32 bits, issue warning */
424 425
425 ACPI_WARNING((AE_INFO, 426 ACPI_WARNING((AE_INFO,
426 "64-bit Physical Address in XSDT is too large (%8.8X%8.8X), truncating", 427 "64-bit Physical Address in XSDT is too large (%8.8X%8.8X),"
428 " truncating",
427 ACPI_FORMAT_UINT64(address64))); 429 ACPI_FORMAT_UINT64(address64)));
428 } 430 }
429#endif 431#endif
@@ -546,13 +548,12 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
546 548
547 /* Calculate the number of tables described in the root table */ 549 /* Calculate the number of tables described in the root table */
548 550
549 table_count = 551 table_count = (u32)((table->length - sizeof(struct acpi_table_header)) /
550 (u32) ((table->length - 552 table_entry_size);
551 sizeof(struct acpi_table_header)) / table_entry_size);
552
553 /* 553 /*
554 * First two entries in the table array are reserved for the DSDT and FACS, 554 * First two entries in the table array are reserved for the DSDT
555 * which are not actually present in the RSDT/XSDT - they come from the FADT 555 * and FACS, which are not actually present in the RSDT/XSDT - they
556 * come from the FADT
556 */ 557 */
557 table_entry = 558 table_entry =
558 ACPI_CAST_PTR(u8, table) + sizeof(struct acpi_table_header); 559 ACPI_CAST_PTR(u8, table) + sizeof(struct acpi_table_header);