efi_selftest: physical and virtual addresses must match
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 11 Apr 2019 17:59:31 +0000 (19:59 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Fri, 12 Apr 2019 20:00:42 +0000 (22:00 +0200)
At boottime physical and virtual addresses must match. Add a corresponding
check to the memory unit test.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_selftest/efi_selftest_memory.c

index 24b4438ce4f51b9be75d02df6766c53f09f08ab9..d41227b605ee60becdfd7ae607e6da6264c85a81 100644 (file)
@@ -65,6 +65,11 @@ static int find_in_memory_map(efi_uintn_t map_size,
        for (i = 0; map_size; ++i, map_size -= desc_size) {
                struct efi_mem_desc *entry = &memory_map[i];
 
+               if (entry->physical_start != entry->virtual_start) {
+                       efi_st_error("Physical and virtual addresses do not match\n");
+                       return EFI_ST_FAILURE;
+               }
+
                if (addr >= entry->physical_start &&
                    addr < entry->physical_start +
                            (entry->num_pages << EFI_PAGE_SHIFT)) {