diff options
Diffstat (limited to 'mm/bootmem.c')
| -rw-r--r-- | mm/bootmem.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/mm/bootmem.c b/mm/bootmem.c index 8ec4e4c2a179..c1330cc19783 100644 --- a/mm/bootmem.c +++ b/mm/bootmem.c | |||
| @@ -61,17 +61,9 @@ static unsigned long __init init_bootmem_core (pg_data_t *pgdat, | |||
| 61 | { | 61 | { |
| 62 | bootmem_data_t *bdata = pgdat->bdata; | 62 | bootmem_data_t *bdata = pgdat->bdata; |
| 63 | unsigned long mapsize = ((end - start)+7)/8; | 63 | unsigned long mapsize = ((end - start)+7)/8; |
| 64 | static struct pglist_data *pgdat_last; | 64 | |
| 65 | 65 | pgdat->pgdat_next = pgdat_list; | |
| 66 | pgdat->pgdat_next = NULL; | 66 | pgdat_list = pgdat; |
| 67 | /* Add new nodes last so that bootmem always starts | ||
| 68 | searching in the first nodes, not the last ones */ | ||
| 69 | if (pgdat_last) | ||
| 70 | pgdat_last->pgdat_next = pgdat; | ||
| 71 | else { | ||
| 72 | pgdat_list = pgdat; | ||
| 73 | pgdat_last = pgdat; | ||
| 74 | } | ||
| 75 | 67 | ||
| 76 | mapsize = ALIGN(mapsize, sizeof(long)); | 68 | mapsize = ALIGN(mapsize, sizeof(long)); |
| 77 | bdata->node_bootmem_map = phys_to_virt(mapstart << PAGE_SHIFT); | 69 | bdata->node_bootmem_map = phys_to_virt(mapstart << PAGE_SHIFT); |
