]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Pull memoryless-node-allocation into release branch
authorTony Luck <tony.luck@intel.com>
Thu, 10 Nov 2005 18:38:41 +0000 (10:38 -0800)
committerTony Luck <tony.luck@intel.com>
Thu, 10 Nov 2005 18:38:41 +0000 (10:38 -0800)
arch/ia64/mm/discontig.c

index a88cdb7232f8ea1586473973c65f9a63d8ecdde7..0f776b032d31355da25f2bdbb47982e3560301cb 100644 (file)
@@ -350,14 +350,12 @@ static void __init initialize_pernode_data(void)
  *     for best.
  * @nid: node id
  * @pernodesize: size of this node's pernode data
- * @align: alignment to use for this node's pernode data
  */
-static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize,
-       unsigned long align)
+static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize)
 {
        void *ptr = NULL;
        u8 best = 0xff;
-       int bestnode = -1, node;
+       int bestnode = -1, node, anynode = 0;
 
        for_each_online_node(node) {
                if (node_isset(node, memory_less_mask))
@@ -366,13 +364,15 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize,
                        best = node_distance(nid, node);
                        bestnode = node;
                }
+               anynode = node;
        }
 
-       ptr = __alloc_bootmem_node(mem_data[bestnode].pgdat,
-               pernodesize, align, __pa(MAX_DMA_ADDRESS));
+       if (bestnode == -1)
+               bestnode = anynode;
+
+       ptr = __alloc_bootmem_node(mem_data[bestnode].pgdat, pernodesize,
+               PERCPU_PAGE_SIZE, __pa(MAX_DMA_ADDRESS));
 
-       if (!ptr)
-               panic("NO memory for memory less node\n");
        return ptr;
 }
 
@@ -413,8 +413,7 @@ static void __init memory_less_nodes(void)
 
        for_each_node_mask(node, memory_less_mask) {
                pernodesize = compute_pernodesize(node);
-               pernode = memory_less_node_alloc(node, pernodesize,
-                       (node) ? (node * PERCPU_PAGE_SIZE) : (1024*1024));
+               pernode = memory_less_node_alloc(node, pernodesize);
                fill_pernode(node, __pa(pernode), pernodesize);
        }