X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=include%2Fasm-mips%2Fpage.h;h=6ed1151a05a36115a9dcb4014cb4b2e21f410b74;hb=1398ab7cb92b21d8d5add3bdc25b2c00462cfd5c;hp=4035ec79ecd494415bceccdc32f91d31e388aee6;hpb=bfd189a8e944dd0b8135dea2c23ac399bbe34535;p=powerpc.git diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index 4035ec79ec..6ed1151a05 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h @@ -9,7 +9,6 @@ #ifndef _ASM_PAGE_H #define _ASM_PAGE_H -#include #ifdef __KERNEL__ @@ -139,10 +138,25 @@ typedef struct { unsigned long pgprot; } pgprot_t; #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) -#ifndef CONFIG_SPARSEMEM -#ifndef CONFIG_NEED_MULTIPLE_NODES +#ifdef CONFIG_FLATMEM + #define pfn_valid(pfn) ((pfn) < max_mapnr) -#endif + +#elif defined(CONFIG_SPARSEMEM) + +/* pfn_valid is defined in linux/mmzone.h */ + +#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); \ +}) + #endif #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)