diff -urN oldtree/include/linux/gfp.h newtree/include/linux/gfp.h
--- oldtree/include/linux/gfp.h	2006-10-05 15:26:55.000000000 -0400
+++ newtree/include/linux/gfp.h	2006-10-07 09:03:55.000000000 -0400
@@ -118,6 +118,9 @@
 #ifndef HAVE_ARCH_FREE_PAGE
 static inline void arch_free_page(struct page *page, int order) { }
 #endif
+#ifndef HAVE_ARCH_ALLOC_PAGE
+static inline void arch_alloc_page(struct page *page, int order) { }
+#endif
 
 extern struct page *
 FASTCALL(__alloc_pages(gfp_t, unsigned int, struct zonelist *));
diff -urN oldtree/mm/page_alloc.c newtree/mm/page_alloc.c
--- oldtree/mm/page_alloc.c	2006-10-07 09:03:24.000000000 -0400
+++ newtree/mm/page_alloc.c	2006-10-07 09:03:55.000000000 -0400
@@ -616,6 +616,8 @@
 			1 << PG_fs_misc | 1 << PG_mappedtodisk);
 	set_page_private(page, 0);
 	set_page_refcounted(page);
+
+	arch_alloc_page(page, order);
 	kernel_map_pages(page, 1 << order, 1);
 
 	if (gfp_flags & __GFP_ZERO)
