[PATCH] for_each_online_pgdat: remove sorting pgdat
Because pgdat_list was linked to pgdat_list in *reverse* order, (By default) some of arch has to sort it by themselves. for_each_pgdat has gone..for_each_online_pgdat() uses node_online_map, which doesn't need to be sorted. This patch removes codes for sorting pgdat. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
这个提交包含在:
@@ -378,31 +378,6 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize)
|
||||
return ptr;
|
||||
}
|
||||
|
||||
/**
|
||||
* pgdat_insert - insert the pgdat into global pgdat_list
|
||||
* @pgdat: the pgdat for a node.
|
||||
*/
|
||||
static void __init pgdat_insert(pg_data_t *pgdat)
|
||||
{
|
||||
pg_data_t *prev = NULL, *next;
|
||||
|
||||
for_each_online_pgdat(next)
|
||||
if (pgdat->node_id < next->node_id)
|
||||
break;
|
||||
else
|
||||
prev = next;
|
||||
|
||||
if (prev) {
|
||||
prev->pgdat_next = pgdat;
|
||||
pgdat->pgdat_next = next;
|
||||
} else {
|
||||
pgdat->pgdat_next = pgdat_list;
|
||||
pgdat_list = pgdat;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* memory_less_nodes - allocate and initialize CPU only nodes pernode
|
||||
* information.
|
||||
@@ -745,11 +720,5 @@ void __init paging_init(void)
|
||||
pfn_offset, zholes_size);
|
||||
}
|
||||
|
||||
/*
|
||||
* Make memory less nodes become a member of the known nodes.
|
||||
*/
|
||||
for_each_node_mask(node, memory_less_mask)
|
||||
pgdat_insert(mem_data[node].pgdat);
|
||||
|
||||
zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page));
|
||||
}
|
||||
|
在新工单中引用
屏蔽一个用户