forked from Minki/linux
powerpc: Record vma->phys_addr in ioremap()
The vmalloc code can track the physical address of a vma, when the vma is used for ioremap, if set it is displayed in /proc/vmallocinfo. Because get_vm_area_caller() doesn't know it's being called for ioremap() it's up to the arch code to set the phys_addr. A bunch of other arch's do this, I'm not sure why powerpc doesn't? Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
bb2c458b8b
commit
7a9d12568e
@ -230,6 +230,7 @@ __ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags,
|
||||
area = get_vm_area_caller(size, VM_IOREMAP, caller);
|
||||
if (area == 0)
|
||||
return NULL;
|
||||
area->phys_addr = p;
|
||||
v = (unsigned long) area->addr;
|
||||
} else {
|
||||
v = (ioremap_bot -= size);
|
||||
|
@ -223,6 +223,8 @@ void __iomem * __ioremap_caller(phys_addr_t addr, unsigned long size,
|
||||
caller);
|
||||
if (area == NULL)
|
||||
return NULL;
|
||||
|
||||
area->phys_addr = paligned;
|
||||
ret = __ioremap_at(paligned, area->addr, size, flags);
|
||||
if (!ret)
|
||||
vunmap(area->addr);
|
||||
|
Loading…
Reference in New Issue
Block a user