[PATCH 1/3] arm: mm: allow boards to fiddle with meminfo

Russell King - ARM Linux linux at arm.linux.org.uk
Sun Oct 10 15:03:08 EDT 2010


On Sun, Oct 10, 2010 at 08:40:38PM +0300, Felipe Contreras wrote:
> So that they can reserve some memory.
> 
> Signed-off-by: Felipe Contreras <felipe.contreras at gmail.com>
> ---
>  arch/arm/include/asm/mach/arch.h |    2 +-
>  arch/arm/mm/init.c               |    7 ++++---
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
> index 8a0dd18..408e4d5 100644
> --- a/arch/arm/include/asm/mach/arch.h
> +++ b/arch/arm/include/asm/mach/arch.h
> @@ -38,7 +38,7 @@ struct machine_desc {
>  	void			(*fixup)(struct machine_desc *,
>  					 struct tag *, char **,
>  					 struct meminfo *);
> -	void			(*reserve)(void);/* reserve mem blocks	*/
> +	void			(*reserve)(struct meminfo *);/* reserve mem blocks	*/
>  	void			(*map_io)(void);/* IO mapping function	*/
>  	void			(*init_irq)(void);
>  	struct sys_timer	*timer;		/* system tick timer	*/
> diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
> index 7185b00..4b5c117 100644
> --- a/arch/arm/mm/init.c
> +++ b/arch/arm/mm/init.c
> @@ -272,8 +272,6 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc)
>  	int i;
>  
>  	memblock_init();
> -	for (i = 0; i < mi->nr_banks; i++)
> -		memblock_add(mi->bank[i].start, mi->bank[i].size);
>  
>  	/* Register the kernel text, kernel data and initrd with memblock. */
>  #ifdef CONFIG_XIP_KERNEL
> @@ -295,7 +293,10 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc)
>  
>  	/* reserve any platform specific memblock areas */
>  	if (mdesc->reserve)
> -		mdesc->reserve();
> +		mdesc->reserve(mi);
> +
> +	for (i = 0; i < mi->nr_banks; i++)
> +		memblock_add(mi->bank[i].start, mi->bank[i].size);

It is not a good idea to change the ordering here, as we'll now be
adding the memory blocks _after_ we've started to make reservations
into memblock.

At least the omapfb code wants there to be memory present in memblock
when ->reserve is called.



More information about the linux-arm-kernel mailing list