m68k: Allow ioremapping top of memory
authorPhilippe De Muyter <phdm@macqel.be>
Sun, 6 Dec 2009 19:28:41 +0000 (20:28 +0100)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Sat, 27 Feb 2010 17:27:13 +0000 (18:27 +0100)
The test in __ioremap to reject memory ranges crossing the 0 boundary
rejects also memory ranges ending at the end of the memory.  Fix that.

Signed-off-by: Philippe De Muyter <phdm@macqel.be>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/mm/kmap.c

index df620ac..cf93cdd 100644 (file)
@@ -116,7 +116,7 @@ void __iomem *__ioremap(unsigned long physaddr, unsigned long size, int cachefla
        /*
         * Don't allow mappings that wrap..
         */
-       if (!size || size > physaddr + size)
+       if (!size || physaddr > (unsigned long)(-size))
                return NULL;
 
 #ifdef CONFIG_AMIGA