summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2006-10-24 10:12:41 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-25 20:26:33 -0700
commitbee8ce809fb1c877388be032b468574a1cfff9ef (patch)
tree6ffcef006fa4ab2ac9d282531a86cb859f87dd93 /arch
parent6ea850b5eb17f6d21ac1b3d99406d213a10c64e9 (diff)
downloadlinux-bee8ce809fb1c877388be032b468574a1cfff9ef.tar.gz
[PATCH] AVR32: Don't try to iounmap P2 segment addresses
While ioremap() will happily map a physical address through the P2 (uncached) segment when appropriate, iounmap() doesn't know how to handle those mappings. This patch makes iounmap() do the right thing, i.e. nothing, for such mappings. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/avr32/mm/ioremap.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/avr32/mm/ioremap.c b/arch/avr32/mm/ioremap.c
index 8cfec65..3437c82 100644
--- a/arch/avr32/mm/ioremap.c
+++ b/arch/avr32/mm/ioremap.c
@@ -77,6 +77,8 @@ void __iounmap(void __iomem *addr)
if ((unsigned long)addr >= P4SEG)
return;
+ if (PXSEG(addr) == P2SEG)
+ return;
p = remove_vm_area((void *)(PAGE_MASK & (unsigned long __force)addr));
if (unlikely(!p)) {