Commit 01de145d authored by Demi Marie Obenour's avatar Demi Marie Obenour Committed by Ard Biesheuvel
Browse files

efi: Actually enable the ESRT under Xen



The ESRT can be parsed if EFI_PARAVIRT is enabled, even if EFI_MEMMAP is
not.  Also allow the ESRT to be in reclaimable memory, as that is where
future Xen versions will put it.

Reported-by: default avatarMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
Tested-by: default avatarMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent c0fecaa4
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -247,7 +247,7 @@ void __init efi_esrt_init(void)
	int rc;
	phys_addr_t end;

	if (!efi_enabled(EFI_MEMMAP))
	if (!efi_enabled(EFI_MEMMAP) && !efi_enabled(EFI_PARAVIRT))
		return;

	pr_debug("esrt-init: loading.\n");
@@ -258,7 +258,9 @@ void __init efi_esrt_init(void)
	if (rc < 0 ||
	    (!(md.attribute & EFI_MEMORY_RUNTIME) &&
	     md.type != EFI_BOOT_SERVICES_DATA &&
	     md.type != EFI_RUNTIME_SERVICES_DATA)) {
	     md.type != EFI_RUNTIME_SERVICES_DATA &&
	     md.type != EFI_ACPI_RECLAIM_MEMORY &&
	     md.type != EFI_ACPI_MEMORY_NVS)) {
		pr_warn("ESRT header is not in the memory map.\n");
		return;
	}