efi: Warn if trying to reserve memory under Xen
authorDemi Marie Obenour <demi@invisiblethingslab.com>
Thu, 19 Jan 2023 19:04:00 +0000 (14:04 -0500)
committerArd Biesheuvel <ardb@kernel.org>
Mon, 23 Jan 2023 10:33:24 +0000 (11:33 +0100)
Doing so cannot work and should never happen.

Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/efi.c

index 19c1191..d4023ea 100644 (file)
@@ -541,6 +541,10 @@ void __init __weak efi_arch_mem_reserve(phys_addr_t addr, u64 size) {}
  */
 void __init efi_mem_reserve(phys_addr_t addr, u64 size)
 {
+       /* efi_mem_reserve() does not work under Xen */
+       if (WARN_ON_ONCE(efi_enabled(EFI_PARAVIRT)))
+               return;
+
        if (!memblock_is_region_reserved(addr, size))
                memblock_reserve(addr, size);