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