Revert "x86-64: Reverse order of bootmem lists"
As requested by Thomas Gleixner <tglx@linutronix.de>: "5d3d0f7704ed0bc7eaca0501eeae3e5da1ea6c87 breaks a couple of ARM boards, which depend on the historical bootmem allocation order. There is a cleaner solution around to remove the pgdat list completely, but this is a topic for post 2.6.14 Andi signalled ACK already." Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
12
mm/bootmem.c
12
mm/bootmem.c
@@ -61,17 +61,9 @@ static unsigned long __init init_bootmem_core (pg_data_t *pgdat,
|
|||||||
{
|
{
|
||||||
bootmem_data_t *bdata = pgdat->bdata;
|
bootmem_data_t *bdata = pgdat->bdata;
|
||||||
unsigned long mapsize = ((end - start)+7)/8;
|
unsigned long mapsize = ((end - start)+7)/8;
|
||||||
static struct pglist_data *pgdat_last;
|
|
||||||
|
|
||||||
pgdat->pgdat_next = NULL;
|
pgdat->pgdat_next = pgdat_list;
|
||||||
/* Add new nodes last so that bootmem always starts
|
pgdat_list = pgdat;
|
||||||
searching in the first nodes, not the last ones */
|
|
||||||
if (pgdat_last)
|
|
||||||
pgdat_last->pgdat_next = pgdat;
|
|
||||||
else {
|
|
||||||
pgdat_list = pgdat;
|
|
||||||
pgdat_last = pgdat;
|
|
||||||
}
|
|
||||||
|
|
||||||
mapsize = ALIGN(mapsize, sizeof(long));
|
mapsize = ALIGN(mapsize, sizeof(long));
|
||||||
bdata->node_bootmem_map = phys_to_virt(mapstart << PAGE_SHIFT);
|
bdata->node_bootmem_map = phys_to_virt(mapstart << PAGE_SHIFT);
|
||||||
|
Reference in New Issue
Block a user