|
@@ -6229,18 +6229,18 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat)
|
|
|
|
|
|
for (j = 0; j < MAX_NR_ZONES; j++) {
|
|
for (j = 0; j < MAX_NR_ZONES; j++) {
|
|
struct zone *zone = pgdat->node_zones + j;
|
|
struct zone *zone = pgdat->node_zones + j;
|
|
- unsigned long size, realsize, freesize, memmap_pages;
|
|
|
|
|
|
+ unsigned long size, freesize, memmap_pages;
|
|
unsigned long zone_start_pfn = zone->zone_start_pfn;
|
|
unsigned long zone_start_pfn = zone->zone_start_pfn;
|
|
|
|
|
|
size = zone->spanned_pages;
|
|
size = zone->spanned_pages;
|
|
- realsize = freesize = zone->present_pages;
|
|
|
|
|
|
+ freesize = zone->present_pages;
|
|
|
|
|
|
/*
|
|
/*
|
|
* Adjust freesize so that it accounts for how much memory
|
|
* Adjust freesize so that it accounts for how much memory
|
|
* is used by this zone for memmap. This affects the watermark
|
|
* is used by this zone for memmap. This affects the watermark
|
|
* and per-cpu initialisations
|
|
* and per-cpu initialisations
|
|
*/
|
|
*/
|
|
- memmap_pages = calc_memmap_size(size, realsize);
|
|
|
|
|
|
+ memmap_pages = calc_memmap_size(size, freesize);
|
|
if (!is_highmem_idx(j)) {
|
|
if (!is_highmem_idx(j)) {
|
|
if (freesize >= memmap_pages) {
|
|
if (freesize >= memmap_pages) {
|
|
freesize -= memmap_pages;
|
|
freesize -= memmap_pages;
|
|
@@ -6272,7 +6272,7 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat)
|
|
* when the bootmem allocator frees pages into the buddy system.
|
|
* when the bootmem allocator frees pages into the buddy system.
|
|
* And all highmem pages will be managed by the buddy system.
|
|
* And all highmem pages will be managed by the buddy system.
|
|
*/
|
|
*/
|
|
- zone->managed_pages = is_highmem_idx(j) ? realsize : freesize;
|
|
|
|
|
|
+ zone->managed_pages = freesize;
|
|
#ifdef CONFIG_NUMA
|
|
#ifdef CONFIG_NUMA
|
|
zone->node = nid;
|
|
zone->node = nid;
|
|
#endif
|
|
#endif
|