summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/firmware/efi/unaccepted_memory.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/firmware/efi/unaccepted_memory.c b/drivers/firmware/efi/unaccepted_memory.c
index c2c067eff634..4a8ec8d6a571 100644
--- a/drivers/firmware/efi/unaccepted_memory.c
+++ b/drivers/firmware/efi/unaccepted_memory.c
@@ -35,14 +35,17 @@ void accept_memory(phys_addr_t start, unsigned long size)
struct efi_unaccepted_memory *unaccepted;
unsigned long range_start, range_end;
struct accept_range range, *entry;
- phys_addr_t end = start + size;
unsigned long flags;
+ phys_addr_t end;
u64 unit_size;
unaccepted = efi_get_unaccepted_table();
if (!unaccepted)
return;
+ end = PAGE_ALIGN(start + size);
+ start = PAGE_ALIGN_DOWN(start);
+
unit_size = unaccepted->unit_size;
/*
@@ -160,15 +163,18 @@ retry:
bool range_contains_unaccepted_memory(phys_addr_t start, unsigned long size)
{
struct efi_unaccepted_memory *unaccepted;
- phys_addr_t end = start + size;
unsigned long flags;
bool ret = false;
+ phys_addr_t end;
u64 unit_size;
unaccepted = efi_get_unaccepted_table();
if (!unaccepted)
return false;
+ end = PAGE_ALIGN(start + size);
+ start = PAGE_ALIGN_DOWN(start);
+
unit_size = unaccepted->unit_size;
/*