From: Paul Jackson - s/freeliest/freelist/ spelling fix - Check for NULL *z zone seems useless - even if it could happen, so what? Perhaps we should have a check later on if we are faced with an allocation request that is not allowed to fail - shouldn't that be a serious kernel error, passing an empty zonelist with a mandate to not fail? - Initializing 'z' to zonelist->zones can wait until after the first get_page_from_freelist() fails; we only use 'z' in the wakeup_kswapd() loop, so let's initialize 'z' there, in a 'for' loop. Seems clearer. - Remove superfluous braces around a break - Fix a couple errant spaces - Adjust indentation on the cpuset_zone_allowed() check, to match the lines just before it -- seems easier to read in this case. - Add another set of braces to the zone_watermark_ok logic Signed-off-by: Paul Jackson Acked-by: Christoph Lameter Cc: Nick Piggin Signed-off-by: Andrew Morton --- mm/page_alloc.c | 27 ++++++++++----------------- 1 files changed, 10 insertions(+), 17 deletions(-) diff -puN mm/page_alloc.c~memory-page-alloc-minor-cleanups mm/page_alloc.c --- a/mm/page_alloc.c~memory-page-alloc-minor-cleanups +++ a/mm/page_alloc.c @@ -485,7 +485,7 @@ static void free_one_page(struct zone *z spin_lock(&zone->lock); zone->all_unreclaimable = 0; zone->pages_scanned = 0; - __free_one_page(page, zone ,order); + __free_one_page(page, zone, order); spin_unlock(&zone->lock); } @@ -925,7 +925,7 @@ int zone_watermark_ok(struct zone *z, in } /* - * get_page_from_freeliest goes through the zonelist trying to allocate + * get_page_from_freelist goes through the zonelist trying to allocate * a page. */ static struct page * @@ -947,8 +947,8 @@ get_page_from_freelist(gfp_t gfp_mask, u zone->zone_pgdat != zonelist->zones[0]->zone_pgdat)) break; if ((alloc_flags & ALLOC_CPUSET) && - !cpuset_zone_allowed(zone, gfp_mask)) - continue; + !cpuset_zone_allowed(zone, gfp_mask)) + continue; if (!(alloc_flags & ALLOC_NO_WATERMARKS)) { unsigned long mark; @@ -958,17 +958,18 @@ get_page_from_freelist(gfp_t gfp_mask, u mark = zone->pages_low; else mark = zone->pages_high; - if (!zone_watermark_ok(zone , order, mark, - classzone_idx, alloc_flags)) + if (!zone_watermark_ok(zone, order, mark, + classzone_idx, alloc_flags)) { if (!zone_reclaim_mode || !zone_reclaim(zone, gfp_mask, order)) continue; + } } page = buffered_rmqueue(zonelist, zone, order, gfp_mask); - if (page) { + if (page) break; - } + } while (*(++z) != NULL); return page; } @@ -992,21 +993,13 @@ __alloc_pages(gfp_t gfp_mask, unsigned i might_sleep_if(wait); restart: - z = zonelist->zones; /* the list of zones suitable for gfp_mask */ - - if (unlikely(*z == NULL)) { - /* Should this ever happen?? */ - return NULL; - } - page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, order, zonelist, ALLOC_WMARK_LOW|ALLOC_CPUSET); if (page) goto got_pg; - do { + for (z = zonelist->zones; *z; z++) wakeup_kswapd(*z, order); - } while (*(++z)); /* * OK, we're below the kswapd watermark and have kicked background _