numa_initmem_init(0, max_page);
- end_boot_allocator();
-
/* Initialise the Xen heap, skipping RAM holes. */
nr_pages = 0;
for ( i = 0; i < e820.nr_map; i++ )
nr_pages >> (20 - PAGE_SHIFT),
nr_pages << (PAGE_SHIFT - 10));
+ end_boot_allocator();
+
early_boot = 0;
early_cpu_init();
ASSERT(zone < NR_ZONES);
+ if ( unlikely(avail[0] == NULL) )
+ {
+ /* Start-of-day memory node 0 initialisation. */
+ init_heap_block(&_heap0);
+ _heap[0] = &_heap0;
+ avail[0] = avail0;
+ }
+
if ( likely(page_to_mfn(pg) != 0) )
nid_prev = phys_to_nid(page_to_maddr(pg-1));
else
unsigned long i;
int curr_free, next_free;
- init_heap_block(&_heap0);
- _heap[0] = &_heap0;
- avail[0] = avail0;
-
/* Pages that are free now go to the domain sub-allocator. */
if ( (curr_free = next_free = !allocated_in_map(first_valid_mfn)) )
map_alloc(first_valid_mfn, 1);