summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2016-05-11 07:45:05 -0700
committerBin Meng <bmeng.cn@gmail.com>2016-05-23 15:18:00 +0800
commit10fcabed8857d2c12a5806c68cf884802f975aae (patch)
treeb21c9d63af195b844048b43986d2292f72dca7cb
parent17b63c80bffbaad344a4f6dd2363830e13ed8c03 (diff)
downloadu-boot-imx-10fcabed8857d2c12a5806c68cf884802f975aae.zip
u-boot-imx-10fcabed8857d2c12a5806c68cf884802f975aae.tar.gz
u-boot-imx-10fcabed8857d2c12a5806c68cf884802f975aae.tar.bz2
x86: acpi: Remove header length check when writing tables
Before moving 'current' pointer during ACPI table writing, we always check the table length to see if it is larger than the table header. Since our purpose is to generate valid tables, the check logic is always true, which can be avoided. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--arch/x86/lib/acpi_table.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/arch/x86/lib/acpi_table.c b/arch/x86/lib/acpi_table.c
index 1c57094..ffb4678 100644
--- a/arch/x86/lib/acpi_table.c
+++ b/arch/x86/lib/acpi_table.c
@@ -376,13 +376,11 @@ u32 write_acpi_tables(u32 start)
debug("ACPI: * DSDT\n");
dsdt = (struct acpi_table_header *)current;
memcpy(dsdt, &AmlCode, sizeof(struct acpi_table_header));
- if (dsdt->length >= sizeof(struct acpi_table_header)) {
- current += sizeof(struct acpi_table_header);
- memcpy((char *)current,
- (char *)&AmlCode + sizeof(struct acpi_table_header),
- dsdt->length - sizeof(struct acpi_table_header));
- current += dsdt->length - sizeof(struct acpi_table_header);
- }
+ current += sizeof(struct acpi_table_header);
+ memcpy((char *)current,
+ (char *)&AmlCode + sizeof(struct acpi_table_header),
+ dsdt->length - sizeof(struct acpi_table_header));
+ current += dsdt->length - sizeof(struct acpi_table_header);
current = ALIGN(current, 16);
debug("ACPI: * FADT\n");
@@ -395,20 +393,16 @@ u32 write_acpi_tables(u32 start)
debug("ACPI: * MADT\n");
madt = (struct acpi_madt *)current;
acpi_create_madt(madt);
- if (madt->header.length > sizeof(struct acpi_madt)) {
- current += madt->header.length;
- acpi_add_table(rsdp, madt);
- }
+ current += madt->header.length;
+ acpi_add_table(rsdp, madt);
current = ALIGN(current, 16);
debug("ACPI: * MCFG\n");
mcfg = (struct acpi_mcfg *)current;
acpi_create_mcfg(mcfg);
- if (mcfg->header.length > sizeof(struct acpi_mcfg)) {
- current += mcfg->header.length;
- current = ALIGN(current, 16);
- acpi_add_table(rsdp, mcfg);
- }
+ current += mcfg->header.length;
+ acpi_add_table(rsdp, mcfg);
+ current = ALIGN(current, 16);
debug("current = %x\n", current);