summaryrefslogtreecommitdiffstats
path: root/efi-dont-map-boot-services-on-32bit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'efi-dont-map-boot-services-on-32bit.patch')
-rw-r--r--efi-dont-map-boot-services-on-32bit.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/efi-dont-map-boot-services-on-32bit.patch b/efi-dont-map-boot-services-on-32bit.patch
new file mode 100644
index 000000000..7cc614992
--- /dev/null
+++ b/efi-dont-map-boot-services-on-32bit.patch
@@ -0,0 +1,22 @@
+diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
+index 3ae4128..ff7dc70 100644
+--- a/arch/x86/platform/efi/efi.c
++++ b/arch/x86/platform/efi/efi.c
+@@ -659,10 +659,13 @@ void __init efi_enter_virtual_mode(void)
+
+ for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
+ md = p;
+- if (!(md->attribute & EFI_MEMORY_RUNTIME) &&
+- md->type != EFI_BOOT_SERVICES_CODE &&
+- md->type != EFI_BOOT_SERVICES_DATA)
+- continue;
++ if (!(md->attribute & EFI_MEMORY_RUNTIME)) {
++#ifdef CONFIG_X86_64
++ if (md->type != EFI_BOOT_SERVICES_CODE &&
++ md->type != EFI_BOOT_SERVICES_DATA)
++#endif
++ continue;
++ }
+
+ size = md->num_pages << EFI_PAGE_SHIFT;
+ end = md->phys_addr + size;