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

Felipe Contreras felipe.contreras at gmail.com
Sun Oct 10 15:37:51 EDT 2010


On Sun, Oct 10, 2010 at 10:03 PM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> 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.

True. I initially added a new callback called reserve_mem(), but I
thought it would be nicer to avoid adding a new function almost
identical to an existing one.

Anyway, what is your suggestion? Can you come up with something else?

-- 
Felipe Contreras



More information about the linux-arm-kernel mailing list