Thread (67 messages) read the whole thread 67 messages, 6 authors, 2012-03-07
STALE5261d

[PATCH v3 02/30] ARM: provide runtime hook for ioremap/iounmap

From: nico@fluxnic.net (Nicolas Pitre)
Date: 2012-03-05 21:11:56

On Mon, 5 Mar 2012, Arnd Bergmann wrote:
On Monday 05 March 2012, Nicolas Pitre wrote:
quoted
Given that the majority of existing platforms don't need the 
indirection, should we make this indirection conditional on 
CONFIG_NEED_IOREMAP_HOOK and let those who need it select it?  Or maybe 
this isn't performance critical and we just don't care?  In any case I'd 
like to see such reasoning captured in the commit log.
It's certainly not performance critical, but there may be some space overhead
in the .text section of the kernel that we could avoid by adding another
indirection.
Of course the size issue can be mitigated significantly by replacing:

extern void __iomem * (*arch_ioremap)(unsigned long, size_t, unsigned int);
extern void (*arch_iounmap)(volatile void __iomem *);

#define __arch_ioremap                 arch_ioremap
#define __arch_iounmap                 arch_iounmap

by:

extern void __iomem * (*arch_ioremap)(unsigned long, size_t, unsigned int);
extern void (*arch_iounmap)(volatile void __iomem *);

extern void __iomem * __arch_ioremap(unsigned long, size_t, unsigned int);
extern void __arch_iounmap(volatile void __iomem *);

and out of line:

void __iomem *__arch_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype)
{
	return arch_ioremap(phys_addr, size, mtype);
}

void __arch_iounmap(volatile void __iomem *io_addr)
{
	arch_iounmap(io_addr);
}


Nicolas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help