diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-12-18 06:10:03 -0500 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-02-15 16:39:11 -0500 |
| commit | 31aa8fd6fd30b0f36416df7d09619768d26b4332 (patch) | |
| tree | d44a7edc5287cf73df43206712e3736ae9b1de5a /arch/arm/include | |
| parent | 7284ce6c9f6153d1777df5f310c959724d1bd446 (diff) | |
ARM: Add caller information to ioremap
This allows the procfs vmallocinfo file to show who created the ioremap
regions. Note: __builtin_return_address(0) doesn't do what's expected
if its used in an inline function, so we leave __arm_ioremap callers
in such places alone.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include')
| -rw-r--r-- | arch/arm/include/asm/io.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h index d2a59cfc30ce..c980156f3263 100644 --- a/arch/arm/include/asm/io.h +++ b/arch/arm/include/asm/io.h | |||
| @@ -69,9 +69,16 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen); | |||
| 69 | /* | 69 | /* |
| 70 | * __arm_ioremap takes CPU physical address. | 70 | * __arm_ioremap takes CPU physical address. |
| 71 | * __arm_ioremap_pfn takes a Page Frame Number and an offset into that page | 71 | * __arm_ioremap_pfn takes a Page Frame Number and an offset into that page |
| 72 | * The _caller variety takes a __builtin_return_address(0) value for | ||
| 73 | * /proc/vmalloc to use - and should only be used in non-inline functions. | ||
| 72 | */ | 74 | */ |
| 73 | extern void __iomem * __arm_ioremap_pfn(unsigned long, unsigned long, size_t, unsigned int); | 75 | extern void __iomem *__arm_ioremap_pfn_caller(unsigned long, unsigned long, |
| 74 | extern void __iomem * __arm_ioremap(unsigned long, size_t, unsigned int); | 76 | size_t, unsigned int, void *); |
| 77 | extern void __iomem *__arm_ioremap_caller(unsigned long, size_t, unsigned int, | ||
| 78 | void *); | ||
| 79 | |||
| 80 | extern void __iomem *__arm_ioremap_pfn(unsigned long, unsigned long, size_t, unsigned int); | ||
| 81 | extern void __iomem *__arm_ioremap(unsigned long, size_t, unsigned int); | ||
| 75 | extern void __iounmap(volatile void __iomem *addr); | 82 | extern void __iounmap(volatile void __iomem *addr); |
| 76 | 83 | ||
| 77 | /* | 84 | /* |
