6f3e186
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
6f3e186
index 3ae4128..ff7dc70 100644
6f3e186
--- a/arch/x86/platform/efi/efi.c
6f3e186
+++ b/arch/x86/platform/efi/efi.c
6f3e186
@@ -659,10 +659,13 @@ void __init efi_enter_virtual_mode(void)
6f3e186
 
6f3e186
 	for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
6f3e186
 		md = p;
6f3e186
-		if (!(md->attribute & EFI_MEMORY_RUNTIME) &&
6f3e186
-		    md->type != EFI_BOOT_SERVICES_CODE &&
6f3e186
-		    md->type != EFI_BOOT_SERVICES_DATA)
6f3e186
-			continue;
6f3e186
+		if (!(md->attribute & EFI_MEMORY_RUNTIME)) {
6f3e186
+#ifdef CONFIG_X86_64
6f3e186
+			if (md->type != EFI_BOOT_SERVICES_CODE &&
6f3e186
+			    md->type != EFI_BOOT_SERVICES_DATA)
6f3e186
+#endif
6f3e186
+				continue;
6f3e186
+		}
6f3e186
 
6f3e186
 		size = md->num_pages << EFI_PAGE_SHIFT;
6f3e186
 		end = md->phys_addr + size;