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
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>