From: Greg Ungerer Date: Thu, 1 Oct 2009 23:45:28 +0000 (+0100) Subject: ARM: 5740/1: fix valid_phys_addr_range() range check X-Git-Tag: v2.6.32-rc3~11^2~2 X-Git-Url: http://bbs.cooldavid.org/git/?a=commitdiff_plain;h=6806bfe18fca92e2001538b84cab5f63c5ea4bed;p=net-next-2.6.git ARM: 5740/1: fix valid_phys_addr_range() range check Commit 1522ac3ec95ff0230e7aa516f86b674fdf72866c ("Fix virtual to physical translation macro corner cases") breaks the end of memory check in valid_phys_addr_range(). The modified expression results in the apparent /dev/mem size being 2 bytes smaller than what it actually is. This patch reworks the expression to correctly check the address, while maintaining use of a valid address to __pa(). Signed-off-by: Greg Ungerer Signed-off-by: Russell King --- diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index f7457fea6de..2b7996401b0 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c @@ -124,7 +124,7 @@ int valid_phys_addr_range(unsigned long addr, size_t size) { if (addr < PHYS_OFFSET) return 0; - if (addr + size >= __pa(high_memory - 1)) + if (addr + size > __pa(high_memory - 1) + 1) return 0; return 1;