diff -r e35a1c004fc2 xen/arch/x86/srat.c --- a/xen/arch/x86/srat.c Tue Aug 11 07:36:26 2009 +0100 +++ b/xen/arch/x86/srat.c Wed Aug 12 17:06:48 2009 +0800 @@ -189,10 +189,21 @@ bad_srat(); return; } - /* It is fine to add this area to the nodes data it will be used later*/ - if (ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) - printk(KERN_INFO "SRAT: hot plug zone found %"PRIx64" - %"PRIx64" \n", + if (ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) { + if (page_is_ram_type(paddr_to_pfn(start), RAM_TYPE_CONVENTIONAL)) + printk(KERN_INFO "SRAT: hot-pluggable zone found %"PRIx64" - %"PRIx64" \n", start, end); + else { + /* TODO: This range contains no existing memory yet, + * and shouldn't be included in nodes' [start, end]. It + * will be covered with physical memory hotplug support + * in future. + */ + printk(KERN_INFO "SRAT: future hotplug zone found %"PRIx64" - %"PRIx64" \n", + start, end); + return; + } + } i = conflicting_nodes(start, end); if (i == node) { printk(KERN_WARNING