mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
acpi: fix struct acpi_xsdt
The size of the ACPI table header is not a multiple of 8. We have to mark struct acpi_xsdt as packed to correctly access field Entry. Add a unit test for the offsets of field Entry in the RSDT and XSDT tables. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
049ee90903
commit
bda020e762
2 changed files with 11 additions and 1 deletions
|
@ -80,7 +80,7 @@ struct acpi_rsdt {
|
|||
};
|
||||
|
||||
/* XSDT (Extended System Description Table) */
|
||||
struct acpi_xsdt {
|
||||
struct __packed acpi_xsdt {
|
||||
struct acpi_table_header header;
|
||||
u64 entry[MAX_ACPI_TABLES];
|
||||
};
|
||||
|
|
|
@ -747,3 +747,13 @@ static int dm_test_acpi_find_table(struct unit_test_state *uts)
|
|||
return 0;
|
||||
}
|
||||
DM_TEST(dm_test_acpi_find_table, 0);
|
||||
|
||||
/* Test offsets in RSDT, XSDT */
|
||||
static int dm_test_acpi_offsets(struct unit_test_state *uts)
|
||||
{
|
||||
ut_asserteq(36, offsetof(struct acpi_rsdt, entry));
|
||||
ut_asserteq(36, offsetof(struct acpi_xsdt, entry));
|
||||
|
||||
return 0;
|
||||
}
|
||||
DM_TEST(dm_test_acpi_offsets, 0);
|
||||
|
|
Loading…
Reference in a new issue