summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/page_types.h
diff options
context:
space:
mode:
authorJacob Shin <jacob.shin@amd.com>2012-11-16 19:38:48 -0800
committerH. Peter Anvin <hpa@linux.intel.com>2012-11-17 11:59:09 -0800
commitdda56e134059b840631fdfd034784056b627c2a6 (patch)
treef7369202429bc6204b0e5062426982265be0fb46 /arch/x86/include/asm/page_types.h
parent4eea6aa581abfeb2695ebe9f9d4672597e1bdd4b (diff)
downloadlinux-stable-dda56e134059b840631fdfd034784056b627c2a6.tar.gz
linux-stable-dda56e134059b840631fdfd034784056b627c2a6.tar.bz2
linux-stable-dda56e134059b840631fdfd034784056b627c2a6.zip
x86, mm: Fixup code testing if a pfn is direct mapped
Update code that previously assumed pfns [ 0 - max_low_pfn_mapped ) and [ 4GB - max_pfn_mapped ) were always direct mapped, to now look up pfn_mapped ranges instead. -v2: change applying sequence to keep git bisecting working. so add dummy pfn_range_is_mapped(). - Yinghai Lu Signed-off-by: Jacob Shin <jacob.shin@amd.com> Link: http://lkml.kernel.org/r/1353123563-3103-12-git-send-email-yinghai@kernel.org Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/include/asm/page_types.h')
-rw-r--r--arch/x86/include/asm/page_types.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
index e21fdd10479f..45aae6e5f649 100644
--- a/arch/x86/include/asm/page_types.h
+++ b/arch/x86/include/asm/page_types.h
@@ -51,6 +51,14 @@ static inline phys_addr_t get_max_mapped(void)
return (phys_addr_t)max_pfn_mapped << PAGE_SHIFT;
}
+static inline bool pfn_range_is_mapped(unsigned long start_pfn,
+ unsigned long end_pfn)
+{
+ return end_pfn <= max_low_pfn_mapped ||
+ (end_pfn > (1UL << (32 - PAGE_SHIFT)) &&
+ end_pfn <= max_pfn_mapped);
+}
+
extern unsigned long init_memory_mapping(unsigned long start,
unsigned long end);