projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
CRISv32: Remove extraneous space between -I and the path.
[cascardo/linux.git]
/
arch
/
powerpc
/
mm
/
pgtable_64.c
diff --git
a/arch/powerpc/mm/pgtable_64.c
b/arch/powerpc/mm/pgtable_64.c
index
365e61a
..
bfa7db6
100644
(file)
--- a/
arch/powerpc/mm/pgtable_64.c
+++ b/
arch/powerpc/mm/pgtable_64.c
@@
-144,8
+144,8
@@
void __iounmap_at(void *ea, unsigned long size)
unmap_kernel_range((unsigned long)ea, size);
}
unmap_kernel_range((unsigned long)ea, size);
}
-void __iomem * __ioremap(phys_addr_t addr, unsigned long size,
-
unsigned long flags
)
+void __iomem * __ioremap
_caller
(phys_addr_t addr, unsigned long size,
+
unsigned long flags, void *caller
)
{
phys_addr_t paligned;
void __iomem *ret;
{
phys_addr_t paligned;
void __iomem *ret;
@@
-168,8
+168,9
@@
void __iomem * __ioremap(phys_addr_t addr, unsigned long size,
if (mem_init_done) {
struct vm_struct *area;
if (mem_init_done) {
struct vm_struct *area;
- area = __get_vm_area(size, VM_IOREMAP,
- ioremap_bot, IOREMAP_END);
+ area = __get_vm_area_caller(size, VM_IOREMAP,
+ ioremap_bot, IOREMAP_END,
+ caller);
if (area == NULL)
return NULL;
ret = __ioremap_at(paligned, area->addr, size, flags);
if (area == NULL)
return NULL;
ret = __ioremap_at(paligned, area->addr, size, flags);
@@
-186,19
+187,27
@@
void __iomem * __ioremap(phys_addr_t addr, unsigned long size,
return ret;
}
return ret;
}
+void __iomem * __ioremap(phys_addr_t addr, unsigned long size,
+ unsigned long flags)
+{
+ return __ioremap_caller(addr, size, flags, __builtin_return_address(0));
+}
void __iomem * ioremap(phys_addr_t addr, unsigned long size)
{
unsigned long flags = _PAGE_NO_CACHE | _PAGE_GUARDED;
void __iomem * ioremap(phys_addr_t addr, unsigned long size)
{
unsigned long flags = _PAGE_NO_CACHE | _PAGE_GUARDED;
+ void *caller = __builtin_return_address(0);
if (ppc_md.ioremap)
if (ppc_md.ioremap)
- return ppc_md.ioremap(addr, size, flags);
- return __ioremap
(addr, size, flags
);
+ return ppc_md.ioremap(addr, size, flags
, caller
);
+ return __ioremap
_caller(addr, size, flags, caller
);
}
void __iomem * ioremap_flags(phys_addr_t addr, unsigned long size,
unsigned long flags)
{
}
void __iomem * ioremap_flags(phys_addr_t addr, unsigned long size,
unsigned long flags)
{
+ void *caller = __builtin_return_address(0);
+
/* writeable implies dirty for kernel addresses */
if (flags & _PAGE_RW)
flags |= _PAGE_DIRTY;
/* writeable implies dirty for kernel addresses */
if (flags & _PAGE_RW)
flags |= _PAGE_DIRTY;
@@
-207,8
+216,8
@@
void __iomem * ioremap_flags(phys_addr_t addr, unsigned long size,
flags &= ~(_PAGE_USER | _PAGE_EXEC);
if (ppc_md.ioremap)
flags &= ~(_PAGE_USER | _PAGE_EXEC);
if (ppc_md.ioremap)
- return ppc_md.ioremap(addr, size, flags);
- return __ioremap
(addr, size, flags
);
+ return ppc_md.ioremap(addr, size, flags
, caller
);
+ return __ioremap
_caller(addr, size, flags, caller
);
}
}