浏览代码

MIPS: Fix CONFIG_FLATMEM version of pfn_valid()

For systems which do not define PHYS_OFFSET as 0 pfn_valid() may falsely
have returned 0 on most configurations.  Bug introduced by commit
752fbeb2e3555c0d236e992f1195fd7ce30e728d (linux-mips.org) rsp.
6f284a2ce7b8bc49cb8455b1763357897a899abb (kernel.org) titled "[MIPS]
FLATMEM: introduce PHYS_OFFSET."

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle 16 年之前
父节点
当前提交
baf9227802
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      arch/mips/include/asm/page.h

+ 8 - 1
arch/mips/include/asm/page.h

@@ -165,7 +165,14 @@ typedef struct { unsigned long pgprot; } pgprot_t;
 
 
 #ifdef CONFIG_FLATMEM
 #ifdef CONFIG_FLATMEM
 
 
-#define pfn_valid(pfn)		((pfn) >= ARCH_PFN_OFFSET && (pfn) < max_mapnr)
+#define pfn_valid(pfn)							\
+({									\
+	unsigned long __pfn = (pfn);					\
+	/* avoid <linux/bootmem.h> include hell */			\
+	extern unsigned long min_low_pfn;				\
+									\
+	__pfn >= min_low_pfn && __pfn < max_mapnr;			\
+})
 
 
 #elif defined(CONFIG_SPARSEMEM)
 #elif defined(CONFIG_SPARSEMEM)