diff options
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a3803ea8c27..0284e528748 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -922,13 +922,10 @@ static void drain_pages(unsigned int cpu) | |||
922 | unsigned long flags; | 922 | unsigned long flags; |
923 | struct zone *zone; | 923 | struct zone *zone; |
924 | 924 | ||
925 | for_each_zone(zone) { | 925 | for_each_populated_zone(zone) { |
926 | struct per_cpu_pageset *pset; | 926 | struct per_cpu_pageset *pset; |
927 | struct per_cpu_pages *pcp; | 927 | struct per_cpu_pages *pcp; |
928 | 928 | ||
929 | if (!populated_zone(zone)) | ||
930 | continue; | ||
931 | |||
932 | pset = zone_pcp(zone, cpu); | 929 | pset = zone_pcp(zone, cpu); |
933 | 930 | ||
934 | pcp = &pset->pcp; | 931 | pcp = &pset->pcp; |
@@ -1585,7 +1582,8 @@ nofail_alloc: | |||
1585 | reclaim_state.reclaimed_slab = 0; | 1582 | reclaim_state.reclaimed_slab = 0; |
1586 | p->reclaim_state = &reclaim_state; | 1583 | p->reclaim_state = &reclaim_state; |
1587 | 1584 | ||
1588 | did_some_progress = try_to_free_pages(zonelist, order, gfp_mask); | 1585 | did_some_progress = try_to_free_pages(zonelist, order, |
1586 | gfp_mask, nodemask); | ||
1589 | 1587 | ||
1590 | p->reclaim_state = NULL; | 1588 | p->reclaim_state = NULL; |
1591 | lockdep_clear_current_reclaim_state(); | 1589 | lockdep_clear_current_reclaim_state(); |
@@ -1879,10 +1877,7 @@ void show_free_areas(void) | |||
1879 | int cpu; | 1877 | int cpu; |
1880 | struct zone *zone; | 1878 | struct zone *zone; |
1881 | 1879 | ||
1882 | for_each_zone(zone) { | 1880 | for_each_populated_zone(zone) { |
1883 | if (!populated_zone(zone)) | ||
1884 | continue; | ||
1885 | |||
1886 | show_node(zone); | 1881 | show_node(zone); |
1887 | printk("%s per-cpu:\n", zone->name); | 1882 | printk("%s per-cpu:\n", zone->name); |
1888 | 1883 | ||
@@ -1922,12 +1917,9 @@ void show_free_areas(void) | |||
1922 | global_page_state(NR_PAGETABLE), | 1917 | global_page_state(NR_PAGETABLE), |
1923 | global_page_state(NR_BOUNCE)); | 1918 | global_page_state(NR_BOUNCE)); |
1924 | 1919 | ||
1925 | for_each_zone(zone) { | 1920 | for_each_populated_zone(zone) { |
1926 | int i; | 1921 | int i; |
1927 | 1922 | ||
1928 | if (!populated_zone(zone)) | ||
1929 | continue; | ||
1930 | |||
1931 | show_node(zone); | 1923 | show_node(zone); |
1932 | printk("%s" | 1924 | printk("%s" |
1933 | " free:%lukB" | 1925 | " free:%lukB" |
@@ -1967,12 +1959,9 @@ void show_free_areas(void) | |||
1967 | printk("\n"); | 1959 | printk("\n"); |
1968 | } | 1960 | } |
1969 | 1961 | ||
1970 | for_each_zone(zone) { | 1962 | for_each_populated_zone(zone) { |
1971 | unsigned long nr[MAX_ORDER], flags, order, total = 0; | 1963 | unsigned long nr[MAX_ORDER], flags, order, total = 0; |
1972 | 1964 | ||
1973 | if (!populated_zone(zone)) | ||
1974 | continue; | ||
1975 | |||
1976 | show_node(zone); | 1965 | show_node(zone); |
1977 | printk("%s: ", zone->name); | 1966 | printk("%s: ", zone->name); |
1978 | 1967 | ||
@@ -2784,11 +2773,7 @@ static int __cpuinit process_zones(int cpu) | |||
2784 | 2773 | ||
2785 | node_set_state(node, N_CPU); /* this node has a cpu */ | 2774 | node_set_state(node, N_CPU); /* this node has a cpu */ |
2786 | 2775 | ||
2787 | for_each_zone(zone) { | 2776 | for_each_populated_zone(zone) { |
2788 | |||
2789 | if (!populated_zone(zone)) | ||
2790 | continue; | ||
2791 | |||
2792 | zone_pcp(zone, cpu) = kmalloc_node(sizeof(struct per_cpu_pageset), | 2777 | zone_pcp(zone, cpu) = kmalloc_node(sizeof(struct per_cpu_pageset), |
2793 | GFP_KERNEL, node); | 2778 | GFP_KERNEL, node); |
2794 | if (!zone_pcp(zone, cpu)) | 2779 | if (!zone_pcp(zone, cpu)) |