Re: [PATCH] mm: bootmem: use phys_addr_t for physical addresses

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]