Commit 98d2b0eb authored by Christoph Lameter's avatar Christoph Lameter Committed by Linus Torvalds

[PATCH] reduce MAX_NR_ZONES: page allocator ZONE_HIGHMEM cleanup

page allocator ZONE_HIGHMEM fixups

1. We do not need to do an #ifdef in si_meminfo since both counters
   in use are zero if !CONFIG_HIGHMEM.

2. Add #ifdef in si_meminfo_node instead to avoid referencing zone
   information for ZONE_HIGHMEM if we do not have HIGHMEM
   (may not be there after the following patches).

3. Replace the use of ZONE_HIGHMEM with MAX_NR_ZONES in build_zonelists_node

4. build_zonelists_node: Remove BUG_ON for ZONE_HIGHMEM. Zone will
   be optional soon and thus BUG_ON cannot be triggered anymore.

5. init_free_area_core: Replace a use of ZONE_HIGHMEM with NR_MAX_ZONES.

[akpm@osdl.org: cleanups]
Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent c1f60a5a
...@@ -1199,13 +1199,8 @@ void si_meminfo(struct sysinfo *val) ...@@ -1199,13 +1199,8 @@ void si_meminfo(struct sysinfo *val)
val->sharedram = 0; val->sharedram = 0;
val->freeram = nr_free_pages(); val->freeram = nr_free_pages();
val->bufferram = nr_blockdev_pages(); val->bufferram = nr_blockdev_pages();
#ifdef CONFIG_HIGHMEM
val->totalhigh = totalhigh_pages; val->totalhigh = totalhigh_pages;
val->freehigh = nr_free_highpages(); val->freehigh = nr_free_highpages();
#else
val->totalhigh = 0;
val->freehigh = 0;
#endif
val->mem_unit = PAGE_SIZE; val->mem_unit = PAGE_SIZE;
} }
...@@ -1218,8 +1213,13 @@ void si_meminfo_node(struct sysinfo *val, int nid) ...@@ -1218,8 +1213,13 @@ void si_meminfo_node(struct sysinfo *val, int nid)
val->totalram = pgdat->node_present_pages; val->totalram = pgdat->node_present_pages;
val->freeram = nr_free_pages_pgdat(pgdat); val->freeram = nr_free_pages_pgdat(pgdat);
#ifdef CONFIG_HIGHMEM
val->totalhigh = pgdat->node_zones[ZONE_HIGHMEM].present_pages; val->totalhigh = pgdat->node_zones[ZONE_HIGHMEM].present_pages;
val->freehigh = pgdat->node_zones[ZONE_HIGHMEM].free_pages; val->freehigh = pgdat->node_zones[ZONE_HIGHMEM].free_pages;
#else
val->totalhigh = 0;
val->freehigh = 0;
#endif
val->mem_unit = PAGE_SIZE; val->mem_unit = PAGE_SIZE;
} }
#endif #endif
...@@ -1344,14 +1344,11 @@ static int __meminit build_zonelists_node(pg_data_t *pgdat, ...@@ -1344,14 +1344,11 @@ static int __meminit build_zonelists_node(pg_data_t *pgdat,
{ {
struct zone *zone; struct zone *zone;
BUG_ON(zone_type > ZONE_HIGHMEM); BUG_ON(zone_type >= MAX_NR_ZONES);
do { do {
zone = pgdat->node_zones + zone_type; zone = pgdat->node_zones + zone_type;
if (populated_zone(zone)) { if (populated_zone(zone)) {
#ifndef CONFIG_HIGHMEM
BUG_ON(zone_type > ZONE_NORMAL);
#endif
zonelist->zones[nr_zones++] = zone; zonelist->zones[nr_zones++] = zone;
check_highest_zone(zone_type); check_highest_zone(zone_type);
} }
...@@ -1981,7 +1978,7 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat, ...@@ -1981,7 +1978,7 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat,
if (zholes_size) if (zholes_size)
realsize -= zholes_size[j]; realsize -= zholes_size[j];
if (j < ZONE_HIGHMEM) if (!is_highmem_idx(j))
nr_kernel_pages += realsize; nr_kernel_pages += realsize;
nr_all_pages += realsize; nr_all_pages += realsize;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment