diff options
Diffstat (limited to 'include/asm-mips/page.h')
-rw-r--r-- | include/asm-mips/page.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index f2b3314fcabc..6b97744f00cd 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h | |||
@@ -138,9 +138,30 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
138 | 138 | ||
139 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) | 139 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) |
140 | 140 | ||
141 | #ifndef CONFIG_SPARSEMEM | ||
141 | #ifndef CONFIG_NEED_MULTIPLE_NODES | 142 | #ifndef CONFIG_NEED_MULTIPLE_NODES |
142 | #define pfn_valid(pfn) ((pfn) < max_mapnr) | 143 | #define pfn_valid(pfn) ((pfn) < max_mapnr) |
143 | #endif | 144 | #endif |
145 | #endif | ||
146 | |||
147 | #ifdef CONFIG_FLATMEM | ||
148 | |||
149 | #define pfn_valid(pfn) ((pfn) < max_mapnr) | ||
150 | |||
151 | #elif defined(CONFIG_NEED_MULTIPLE_NODES) | ||
152 | |||
153 | #define pfn_valid(pfn) \ | ||
154 | ({ \ | ||
155 | unsigned long __pfn = (pfn); \ | ||
156 | int __n = pfn_to_nid(__pfn); \ | ||
157 | ((__n >= 0) ? (__pfn < NODE_DATA(__n)->node_start_pfn + \ | ||
158 | NODE_DATA(__n)->node_spanned_pages) \ | ||
159 | : 0); \ | ||
160 | }) | ||
161 | |||
162 | #else | ||
163 | #error Provide a definition of pfn_valid | ||
164 | #endif | ||
144 | 165 | ||
145 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | 166 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) |
146 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | 167 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) |