diff options
Diffstat (limited to 'include/asm-mips/page.h')
-rw-r--r-- | include/asm-mips/page.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index 4035ec79ecd4..6b97744f00cd 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h | |||
@@ -9,7 +9,6 @@ | |||
9 | #ifndef _ASM_PAGE_H | 9 | #ifndef _ASM_PAGE_H |
10 | #define _ASM_PAGE_H | 10 | #define _ASM_PAGE_H |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | 12 | ||
14 | #ifdef __KERNEL__ | 13 | #ifdef __KERNEL__ |
15 | 14 | ||
@@ -145,6 +144,25 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
145 | #endif | 144 | #endif |
146 | #endif | 145 | #endif |
147 | 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 | ||
165 | |||
148 | #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) |
149 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | 167 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) |
150 | 168 | ||