|
@@ -829,6 +829,8 @@ char * __init xen_memory_setup(void)
|
|
|
addr = xen_e820_map[0].addr;
|
|
|
size = xen_e820_map[0].size;
|
|
|
while (i < xen_e820_map_entries) {
|
|
|
+ bool discard = false;
|
|
|
+
|
|
|
chunk_size = size;
|
|
|
type = xen_e820_map[i].type;
|
|
|
|
|
@@ -843,10 +845,11 @@ char * __init xen_memory_setup(void)
|
|
|
xen_add_extra_mem(pfn_s, n_pfns);
|
|
|
xen_max_p2m_pfn = pfn_s + n_pfns;
|
|
|
} 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;
|
|
|
size -= chunk_size;
|