aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/efi/boot.c
diff options
context:
space:
mode:
Diffstat (limited to 'xen/arch/x86/efi/boot.c')
-rw-r--r--xen/arch/x86/efi/boot.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/arch/x86/efi/boot.c b/xen/arch/x86/efi/boot.c
index 055ac13ce6..66a6fdba21 100644
--- a/xen/arch/x86/efi/boot.c
+++ b/xen/arch/x86/efi/boot.c
@@ -459,7 +459,8 @@ static bool_t __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
what = what ?: L"Seek";
else
{
- file->addr = (EFI_PHYSICAL_ADDRESS)1 << (32 + PAGE_SHIFT);
+ file->addr = min(1UL << (32 + PAGE_SHIFT),
+ HYPERVISOR_VIRT_END - DIRECTMAP_VIRT_START);
ret = efi_bs->AllocatePages(AllocateMaxAddress, EfiLoaderData,
PFN_UP(size), &file->addr);
}