Index: linux-2.6.15-rc3/mm/page_alloc.c =================================================================== --- linux-2.6.15-rc3.orig/mm/page_alloc.c 2005-11-28 19:51:27.000000000 -0800 +++ linux-2.6.15-rc3/mm/page_alloc.c 2005-11-30 18:22:34.000000000 -0800 @@ -398,12 +398,13 @@ void __free_pages_ok(struct page *page, LIST_HEAD(list); int i; int reserved = 0; + int size = 1 << order; arch_free_page(page, order); #ifndef CONFIG_MMU if (order > 0) - for (i = 1 ; i < (1 << order) ; ++i) + for (i = 1 ; i < size ; ++i) __put_page(page + i); #endif @@ -413,8 +414,8 @@ void __free_pages_ok(struct page *page, return; list_add(&page->lru, &list); - mod_page_state(pgfree, 1 << order); - kernel_map_pages(page, 1<