summaryrefslogtreecommitdiff
path: root/lib/efi_selftest/efi_selftest_memory.c
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2019-04-11 19:59:31 +0200
committerHeinrich Schuchardt <xypron.glpk@gmx.de>2019-04-12 22:00:42 +0200
commit207c5bcce11fef1aea1fd60f5e5b3cf6db0b2b79 (patch)
treee4eaf40d26ea975bf42ae31e44f6d7b18ad1970c /lib/efi_selftest/efi_selftest_memory.c
parent9631fa0fd191adaa5521ee78369f62e975c57a06 (diff)
efi_selftest: physical and virtual addresses must match
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>
Diffstat (limited to 'lib/efi_selftest/efi_selftest_memory.c')
-rw-r--r--lib/efi_selftest/efi_selftest_memory.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/efi_selftest/efi_selftest_memory.c b/lib/efi_selftest/efi_selftest_memory.c
index 24b4438ce4..d41227b605 100644
--- a/lib/efi_selftest/efi_selftest_memory.c
+++ b/lib/efi_selftest/efi_selftest_memory.c
@@ -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)) {