]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/x86/xen/setup.c
Merge remote-tracking branch 'xen-tip/linux-next'
[karo-tx-linux.git] / arch / x86 / xen / setup.c
index 63320b6d35bc45f4292d3d5371e529e28a7e837c..7ab29518a3b9dc0c7f26bfa0d15727b378de324a 100644 (file)
@@ -212,7 +212,7 @@ static unsigned long __init xen_find_pfn_range(unsigned long *min_pfn)
                e_pfn = PFN_DOWN(entry->addr + entry->size);
 
                /* We only care about E820 after this */
-               if (e_pfn < *min_pfn)
+               if (e_pfn <= *min_pfn)
                        continue;
 
                s_pfn = PFN_UP(entry->addr);
@@ -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;