Messages in this thread | | | Date | Wed, 12 Sep 2012 20:08:30 -0400 | From | Cyril Chemparathy <> | Subject | Re: [PATCH] mm: bootmem: use phys_addr_t for physical addresses |
| |
Hi Tejun,
On 9/12/2012 4:39 PM, Tejun Heo wrote: > Hello, > > On Wed, Sep 12, 2012 at 12:06:48PM -0400, Cyril Chemparathy wrote: >> static void * __init alloc_bootmem_core(unsigned long size, >> unsigned long align, >> - unsigned long goal, >> - unsigned long limit) >> + phys_addr_t goal, >> + phys_addr_t limit) > > So, a function which takes phys_addr_t for goal and limit but returns > void * doesn't make much sense unless the function creates directly > addressable mapping somewhere. >
On the 32-bit PAE platform in question, physical memory is located outside the 4GB range. Therefore phys_to_virt takes a 64-bit physical address and returns a 32-bit kernel mapped lowmem pointer.
> The right thing to do would be converting to nobootmem (ie. memblock) > and use the memblock interface. Have no idea at all whether that > would be a realistic short-term solution for arm. >
I must plead ignorance and let wiser souls chime in on ARM architecture plans w.r.t. nobootmem. As far as I can tell, the only thing that blocks us from using nobootmem at present is the need for sparsemem on some platforms.
-- Thanks - Cyril
| |