A couple of places set_page_count(page, 1) that don't need to. Signed-off-by: Nick Piggin Index: linux-2.6/arch/powerpc/mm/mem.c =================================================================== --- linux-2.6.orig/arch/powerpc/mm/mem.c +++ linux-2.6/arch/powerpc/mm/mem.c @@ -108,8 +108,8 @@ EXPORT_SYMBOL(phys_mem_access_prot); void online_page(struct page *page) { ClearPageReserved(page); - set_page_count(page, 0); - free_cold_page(page); + set_page_count(page, 1); + __free_page(page); totalram_pages++; num_physpages++; } Index: linux-2.6/arch/um/kernel/physmem.c =================================================================== --- linux-2.6.orig/arch/um/kernel/physmem.c +++ linux-2.6/arch/um/kernel/physmem.c @@ -279,7 +279,7 @@ int init_maps(unsigned long physmem, uns for(i = 0; i < total_pages; i++){ p = &map[i]; - set_page_count(p, 0); + memset(p, 0, sizeof(struct page)); SetPageReserved(p); INIT_LIST_HEAD(&p->lru); }