[PATCH] __ioremap_caller(): make check for ioremapping of RAMcover complete mapping

From: Florian Zumbiehl
Date: Tue Jun 15 2010 - 13:10:20 EST


the patch is untested and someone with detailed understanding of the
semantics of this code probably should check for correctness of
the fixed version in corner cases.

x86 __ioremap_caller(): fix check for overlap with RAM to check the
last page of the mapping as well.

Signed-off-by: Florian Zumbiehl <florz@xxxxxxxx>

diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index a4643e5..4c3e4f9 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -101,7 +101,7 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
* Don't allow anybody to remap normal RAM that we're using..
for (pfn = phys_addr >> PAGE_SHIFT;
- (pfn << PAGE_SHIFT) < (last_addr & PAGE_MASK);
+ pfn <= (last_addr >> PAGE_SHIFT);
pfn++) {

int is_ram = page_is_ram(pfn);
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/