logic_io instance of iounmap() needs volatile on argument
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 20 Sep 2021 21:32:49 +0000 (21:32 +0000)
committerRichard Weinberger <richard@nod.at>
Tue, 21 Dec 2021 20:31:08 +0000 (21:31 +0100)
... same as the rest of implementations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Richard Weinberger <richard@nod.at>
include/asm-generic/logic_io.h
lib/logic_iomem.c

index a53116b8c57efb478c1aed8babe474ad4e898685..8a59b6e567df7715ad5c821c8589df4d27e97a94 100644 (file)
@@ -34,7 +34,7 @@
 void __iomem *ioremap(phys_addr_t offset, size_t size);
 
 #define iounmap iounmap
-void iounmap(void __iomem *addr);
+void iounmap(void volatile __iomem *addr);
 
 #define __raw_readb __raw_readb
 u8 __raw_readb(const volatile void __iomem *addr);
index 549b22d4bcde1a1f5d0933a8df954c99847dfc91..8c3365f26e51d6ddbc76c318ef5092faa1e6c971 100644 (file)
@@ -76,7 +76,7 @@ static void __iomem *real_ioremap(phys_addr_t offset, size_t size)
        return NULL;
 }
 
-static void real_iounmap(void __iomem *addr)
+static void real_iounmap(volatile void __iomem *addr)
 {
        WARN(1, "invalid iounmap for addr 0x%llx\n",
             (unsigned long long)(uintptr_t __force)addr);
@@ -149,7 +149,7 @@ get_area(const volatile void __iomem *addr)
        return NULL;
 }
 
-void iounmap(void __iomem *addr)
+void iounmap(volatile void __iomem *addr)
 {
        struct logic_iomem_area *area = get_area(addr);