From: Al Viro Date: Mon, 9 Oct 2006 01:09:49 +0000 (+0100) Subject: [PATCH] arm: it's OK to pass pointer to volatile as iounmap() argument... X-Git-Tag: v2.6.19-rc2~242 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=1622605cf6e15bfdc55a3dc78b792018edded435;p=linux-2.6-omap-h63xx.git [PATCH] arm: it's OK to pass pointer to volatile as iounmap() argument... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds --- diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index 591fc3187c7..46544059279 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c @@ -361,14 +361,14 @@ __ioremap(unsigned long phys_addr, size_t size, unsigned long flags) } EXPORT_SYMBOL(__ioremap); -void __iounmap(void __iomem *addr) +void __iounmap(volatile void __iomem *addr) { #ifndef CONFIG_SMP struct vm_struct **p, *tmp; #endif unsigned int section_mapping = 0; - addr = (void __iomem *)(PAGE_MASK & (unsigned long)addr); + addr = (volatile void __iomem *)(PAGE_MASK & (unsigned long)addr); #ifndef CONFIG_SMP /* @@ -395,6 +395,6 @@ void __iounmap(void __iomem *addr) #endif if (!section_mapping) - vunmap(addr); + vunmap((void __force *)addr); } EXPORT_SYMBOL(__iounmap); diff --git a/include/asm-arm/io.h b/include/asm-arm/io.h index 8076a85c367..34aaaac4f61 100644 --- a/include/asm-arm/io.h +++ b/include/asm-arm/io.h @@ -63,7 +63,7 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen); */ extern void __iomem * __ioremap_pfn(unsigned long, unsigned long, size_t, unsigned long); extern void __iomem * __ioremap(unsigned long, size_t, unsigned long); -extern void __iounmap(void __iomem *addr); +extern void __iounmap(volatile void __iomem *addr); /* * Bad read/write accesses...