[MIPS] Consolidate definitions of pfn_valid in one file.
authorRalf Baechle <ralf@linux-mips.org>
Mon, 12 Jun 2006 08:13:56 +0000 (09:13 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 19 Jun 2006 16:39:22 +0000 (17:39 +0100)
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
include/asm-mips/mmzone.h
include/asm-mips/page.h

index 7bde443..79f4491 100644 (file)
 #define kvaddr_to_nid(kvaddr)  pa_to_nid(__pa(kvaddr))
 #define pfn_to_nid(pfn)                pa_to_nid((pfn) << PAGE_SHIFT)
 
-#define pfn_valid(pfn)                                         \
-({                                                             \
-       unsigned long __pfn = (pfn);                            \
-       int __n = pfn_to_nid(__pfn);                            \
-       ((__n >= 0) ? (__pfn < NODE_DATA(__n)->node_start_pfn + \
-                      NODE_DATA(__n)->node_spanned_pages) : 0);\
-})
-
 /* XXX: FIXME -- wli */
 #define kern_addr_valid(addr)  (0)
 
index 4035ec7..3d262c0 100644 (file)
@@ -145,6 +145,25 @@ typedef struct { unsigned long pgprot; } pgprot_t;
 #endif
 #endif
 
+#ifdef CONFIG_FLATMEM
+
+#define pfn_valid(pfn)         ((pfn) < max_mapnr)
+
+#elif defined(CONFIG_NEED_MULTIPLE_NODES)
+
+#define pfn_valid(pfn)                                                 \
+({                                                                     \
+       unsigned long __pfn = (pfn);                                    \
+       int __n = pfn_to_nid(__pfn);                                    \
+       ((__n >= 0) ? (__pfn < NODE_DATA(__n)->node_start_pfn +         \
+                              NODE_DATA(__n)->node_spanned_pages)      \
+                   : 0);                                               \
+})
+
+#else
+#error Provide a definition of pfn_valid
+#endif
+
 #define virt_to_page(kaddr)    pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
 #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)