x86/efi: EFI soft reservation to E820 enumeration
[linux-2.6-microblaze.git] / arch / x86 / boot / compressed / eboot.c
index 82bc60c..f2db8c5 100644 (file)
@@ -554,7 +554,11 @@ setup_e820(struct boot_params *params, struct setup_data *e820ext, u32 e820ext_s
                case EFI_BOOT_SERVICES_CODE:
                case EFI_BOOT_SERVICES_DATA:
                case EFI_CONVENTIONAL_MEMORY:
-                       e820_type = E820_TYPE_RAM;
+                       if (efi_soft_reserve_enabled() &&
+                           (d->attribute & EFI_MEMORY_SP))
+                               e820_type = E820_TYPE_SOFT_RESERVED;
+                       else
+                               e820_type = E820_TYPE_RAM;
                        break;
 
                case EFI_ACPI_MEMORY_NVS: