Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f744aff authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: Make iounmap_fixed() return success/failure for iounmap() path.



This converts iounmap_fixed() to return success/error if it handled the
unmap request or not. At the same time, drop the __init label, as this
can be called in to later.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 0b59e38f
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
 * for old compat code for I/O offseting to SuperIOs, all of which are
 * better handled through the machvec ioport mapping routines these days.
 */
#include <linux/errno.h>
#include <asm/cache.h>
#include <asm/system.h>
#include <asm/addrspace.h>
@@ -239,7 +240,7 @@ void __iounmap(void __iomem *addr);

#ifdef CONFIG_IOREMAP_FIXED
extern void __iomem *ioremap_fixed(resource_size_t, unsigned long, pgprot_t);
extern void iounmap_fixed(void __iomem *);
extern int iounmap_fixed(void __iomem *);
extern void ioremap_fixed_init(void);
#else
static inline void __iomem *
@@ -249,7 +250,7 @@ ioremap_fixed(resource_size t phys_addr, unsigned long size, pgprot_t prot)
}

static inline void ioremap_fixed_init(void) { }
static inline void iounmap_fixed(void __iomem *addr) { }
static inline int iounmap_fixed(void __iomem *addr) { return -EINVAL; }
#endif

static inline void __iomem *
+7 −2
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ ioremap_fixed(resource_size_t phys_addr, unsigned long size, pgprot_t prot)
	return map->addr;
}

void __init iounmap_fixed(void __iomem *addr)
int iounmap_fixed(void __iomem *addr)
{
	enum fixed_addresses idx;
	unsigned long virt_addr;
@@ -122,8 +122,11 @@ void __init iounmap_fixed(void __iomem *addr)
		}
	}

	/*
	 * If we don't match, it's not for us.
	 */
	if (slot < 0)
		return;
		return -EINVAL;

	virt_addr = (unsigned long)addr;

@@ -141,4 +144,6 @@ void __init iounmap_fixed(void __iomem *addr)

	map->size = 0;
	map->addr = NULL;

	return 0;
}