From: Andrew Morton It was wrong for (order > 0). Signed-off-by: Rohit Seth Cc: Signed-off-by: Andrew Morton --- mm/page_alloc.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN mm/page_alloc.c~mm-try-to-allocate-higher-order-pages-in-rmqueue_bulk-fix mm/page_alloc.c --- devel/mm/page_alloc.c~mm-try-to-allocate-higher-order-pages-in-rmqueue_bulk-fix 2005-09-12 00:21:20.000000000 -0700 +++ devel-akpm/mm/page_alloc.c 2005-09-12 00:21:20.000000000 -0700 @@ -520,7 +520,7 @@ static int rmqueue_bulk(struct zone *zon page = __rmqueue(zone, norder); if (page != NULL) { allocated += (1 << norder); - for (i = 0; i < (1 << norder); i++) + for (i = 0; i < (1 << norder); i += (1 << order)) list_add_tail(&page[i].lru, list); norder++; } _