diff options
Diffstat (limited to 'xen/arch/x86/efi/boot.c')
-rw-r--r-- | xen/arch/x86/efi/boot.c | 3 |
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); } |