From: Andy Whitcroft <apw@shadowen.org>

Provide a default implementation for early_pfn_to_nid returning node 0.  Allow
architectures to override this with their own implementation out of
asm/mmzone.h.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Martin Bligh <mbligh@aracnet.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 arch/i386/Kconfig         |    4 ++++
 include/asm-i386/mmzone.h |    3 +++
 include/linux/mmzone.h    |    4 ++++
 3 files changed, 11 insertions(+)

diff -puN arch/i386/Kconfig~generify-early_pfn_to_nid arch/i386/Kconfig
--- 25/arch/i386/Kconfig~generify-early_pfn_to_nid	Fri May  6 14:58:12 2005
+++ 25-akpm/arch/i386/Kconfig	Fri May  6 14:58:12 2005
@@ -810,6 +810,10 @@ config HAVE_ARCH_ALLOC_REMAP
 
 source "mm/Kconfig"
 
+config HAVE_ARCH_EARLY_PFN_TO_NID
+	bool
+	default y
+
 config HIGHPTE
 	bool "Allocate 3rd-level pagetables from highmem"
 	depends on HIGHMEM4G || HIGHMEM64G
diff -puN include/asm-i386/mmzone.h~generify-early_pfn_to_nid include/asm-i386/mmzone.h
--- 25/include/asm-i386/mmzone.h~generify-early_pfn_to_nid	Fri May  6 14:58:12 2005
+++ 25-akpm/include/asm-i386/mmzone.h	Fri May  6 14:58:12 2005
@@ -143,4 +143,7 @@ static inline void get_memcfg_numa(void)
 }
 
 #endif /* CONFIG_DISCONTIGMEM */
+
+extern int early_pfn_to_nid(unsigned long pfn);
+
 #endif /* _ASM_MMZONE_H_ */
diff -puN include/linux/mmzone.h~generify-early_pfn_to_nid include/linux/mmzone.h
--- 25/include/linux/mmzone.h~generify-early_pfn_to_nid	Fri May  6 14:58:12 2005
+++ 25-akpm/include/linux/mmzone.h	Fri May  6 14:58:12 2005
@@ -418,6 +418,10 @@ extern struct pglist_data contig_page_da
 
 #endif
 
+#ifndef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
+#define early_pfn_to_nid(nid)  (0UL)
+#endif
+
 #endif /* !__ASSEMBLY__ */
 #endif /* __KERNEL__ */
 #endif /* _LINUX_MMZONE_H */
_