Commit 5f174ec3 authored by Al Viro's avatar Al Viro Committed by Richard Weinberger
Browse files

logic_io instance of iounmap() needs volatile on argument



... same as the rest of implementations

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 577ade59
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -34,7 +34,7 @@
void __iomem *ioremap(phys_addr_t offset, size_t size);
void __iomem *ioremap(phys_addr_t offset, size_t size);


#define iounmap iounmap
#define iounmap iounmap
void iounmap(void __iomem *addr);
void iounmap(void volatile __iomem *addr);


#define __raw_readb __raw_readb
#define __raw_readb __raw_readb
u8 __raw_readb(const volatile void __iomem *addr);
u8 __raw_readb(const volatile void __iomem *addr);
+2 −2
Original line number Original line Diff line number Diff line
@@ -76,7 +76,7 @@ static void __iomem *real_ioremap(phys_addr_t offset, size_t size)
	return NULL;
	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",
	WARN(1, "invalid iounmap for addr 0x%llx\n",
	     (unsigned long long)(uintptr_t __force)addr);
	     (unsigned long long)(uintptr_t __force)addr);
@@ -149,7 +149,7 @@ get_area(const volatile void __iomem *addr)
	return NULL;
	return NULL;
}
}


void iounmap(void __iomem *addr)
void iounmap(volatile void __iomem *addr)
{
{
	struct logic_iomem_area *area = get_area(addr);
	struct logic_iomem_area *area = get_area(addr);