[RESEND][PATCH] ARM: memmap: only free allocated memmap entries when using SPARSEMEM

Will Deacon will.deacon at arm.com
Wed Apr 20 11:32:05 EDT 2011


On Fri, 2011-04-08 at 14:02 +0100, Will Deacon wrote:
> The SPARSEMEM code allocates memmap entries only for sections which are
> present (i.e. those which contain some valid memory). The membank checks
> in free_unused_memmap do not take this into account and can incorrectly
> attempt to free memory which is not allocated, resulting in a BUG() in
> the bootmem code.
> 
> However, if memory is configured as follows:
> 
>     |<----section---->|<----hole---->|<----section---->|
>     +--------+--------+--------------+--------+--------+
>     | bank 0 | unused |              | bank 1 | unused |
>     +--------+--------+--------------+--------+--------+
> 
> where a bank only occupies part of a section, the memmap allocated for
> the remainder of the section *can* be freed.
> 
> This patch modifies the checks in free_unused_memmap so that only valid
> memmap entries are considered for removal.
> 
> Cc: Russell King - ARM Linux <linux at arm.linux.org.uk>
> Acked-by: Catalin Marinas <catalin.marinas at arm.com>
> Signed-off-by: Will Deacon <will.deacon at arm.com>
> ---

Russell - are you happy for me to post this to the patch system (minus
the CC)?

Thanks,

Will




More information about the linux-arm-kernel mailing list