On Thu, Apr 25, 2019 at 07:34:39AM +0200, Igor Mammedov wrote: >In case of UEFI, RSDP doesn't have to be located in lowmem, >it could be placed at any address. Make sure that test won't >break if it is placed above the first 4Gb of address space. > >PS: >While at it cleanup some local variables as we don't really >need them. > >Signed-off-by: Igor Mammedov <imamm...@redhat.com> >Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> >--- >v2: > - s/In case of UEFI/In case of UEFI,/ (Laszlo Ersek <ler...@redhat.com>) >--- > tests/bios-tables-test.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > >diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c >index 2ee044c..c29dcf4 100644 >--- a/tests/bios-tables-test.c >+++ b/tests/bios-tables-test.c >@@ -26,7 +26,7 @@ > typedef struct { > const char *machine; > const char *variant; >- uint32_t rsdp_addr; >+ uint64_t rsdp_addr; > uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */]; > GArray *tables; > uint32_t smbios_ep_addr; >@@ -86,13 +86,11 @@ static void test_acpi_rsdp_address(test_data *data) > > static void test_acpi_rsdp_table(test_data *data) > { >- uint8_t *rsdp_table = data->rsdp_table, revision; >- uint32_t addr = data->rsdp_addr; >+ uint8_t *rsdp_table = data->rsdp_table; > >- acpi_fetch_rsdp_table(data->qts, addr, rsdp_table); >- revision = rsdp_table[15 /* Revision offset */]; >+ acpi_fetch_rsdp_table(data->qts, data->rsdp_addr, rsdp_table);
Ok, I think this is the reason you change the second parameter from uint32_t to uint64_t in 1st patch. Maybe we need to move that on to this one? > >- switch (revision) { >+ switch (rsdp_table[15 /* Revision offset */]) { > case 0: /* ACPI 1.0 RSDP */ > /* With rev 1, checksum is only for the first 20 bytes */ > g_assert(!acpi_calc_checksum(rsdp_table, 20)); >-- >2.7.4 -- Wei Yang Help you, Help me