提交 f5775e0b 编写于 作者: D David Vrabel

x86/xen: discard RAM regions above the maximum reservation

During setup, discard RAM regions that are above the maximum
reservation (instead of marking them as E820_UNUSABLE).  This allows
hotplug memory to be placed at these addresses.
Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
Reviewed-by: NDaniel Kiper <daniel.kiper@oracle.com>
上级 f6a6cb1a
...@@ -829,6 +829,8 @@ char * __init xen_memory_setup(void) ...@@ -829,6 +829,8 @@ char * __init xen_memory_setup(void)
addr = xen_e820_map[0].addr; addr = xen_e820_map[0].addr;
size = xen_e820_map[0].size; size = xen_e820_map[0].size;
while (i < xen_e820_map_entries) { while (i < xen_e820_map_entries) {
bool discard = false;
chunk_size = size; chunk_size = size;
type = xen_e820_map[i].type; type = xen_e820_map[i].type;
...@@ -843,10 +845,11 @@ char * __init xen_memory_setup(void) ...@@ -843,10 +845,11 @@ char * __init xen_memory_setup(void)
xen_add_extra_mem(pfn_s, n_pfns); xen_add_extra_mem(pfn_s, n_pfns);
xen_max_p2m_pfn = pfn_s + n_pfns; xen_max_p2m_pfn = pfn_s + n_pfns;
} else } else
type = E820_UNUSABLE; discard = true;
} }
xen_align_and_add_e820_region(addr, chunk_size, type); if (!discard)
xen_align_and_add_e820_region(addr, chunk_size, type);
addr += chunk_size; addr += chunk_size;
size -= chunk_size; size -= chunk_size;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册