I've seen this as well on i386.  It crops up when you are using HIGHMEM.
In include/asm-i386/pgtable.h you declare pgtable_cache_init if HIGHMEM
is on, or define it to the empty while loop if not.  It really needs to
be calling init_pae_pgd_cache instead though.  Try this patch against
2.4.9-ac4.  I don't know if changing the name of init_pae_pgd_cache was
the Right Thing (tm) to do, but it worked for me.  It's not getting
called anywhere else anyways.
-Paul Larson
diff -urN linux-2.4.9-ac4/arch/i386/mm/init.c linux-new/arch/i386/mm/init.c
--- linux-2.4.9-ac4/arch/i386/mm/init.c	Thu Aug 30 14:09:00 2001
+++ linux-new/arch/i386/mm/init.c	Thu Aug 30 15:01:12 2001
@@ -583,7 +583,7 @@
 
 struct kmem_cache_s *pae_pgd_cachep;
 
-void __init init_pae_pgd_cache(void)
+void __init pgtable_cache_init(void)
 {
 	/*
 	 * PAE pgds must be 16-byte aligned:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/