[PATCH v3 08/23] mm/memblock: Add memblock memory allocation apis

Tejun Heo tj at kernel.org
Fri Dec 13 16:37:35 EST 2013


On Mon, Dec 09, 2013 at 04:50:41PM -0500, Santosh Shilimkar wrote:
> Introduce memblock memory allocation APIs which allow to support
> PAE or LPAE extension on 32 bits archs where the physical memory
> start address can be beyond 4GB. In such cases, existing bootmem
> APIs which operate on 32 bit addresses won't work and needs
> memblock layer which operates on 64 bit addresses.

The overall API looks good to me.  Thanks for doing this!

> +static void * __init memblock_virt_alloc_internal(
> +				phys_addr_t size, phys_addr_t align,
> +				phys_addr_t min_addr, phys_addr_t max_addr,
> +				int nid)
> +{
> +	phys_addr_t alloc;
> +	void *ptr;
> +
> +	if (nid == MAX_NUMNODES)
> +		pr_warn("%s: usage of MAX_NUMNODES is depricated. Use NUMA_NO_NODE\n",
> +			__func__);

Why not use WARN_ONCE()?  Also, shouldn't nid be set to NUMA_NO_NODE
here?

...
> +	if (nid != NUMA_NO_NODE) {

Otherwise, the above test is broken.

> +		alloc = memblock_find_in_range_node(size, align, min_addr,
> +						    max_addr,  NUMA_NO_NODE);
> +		if (alloc)
> +			goto done;
> +	}

Thanks.

-- 
tejun



More information about the linux-arm-kernel mailing list