[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