From: Matt Fleming Date: Sun, 25 Apr 2010 16:29:07 +0000 (+0100) Subject: sh: Do not try merging two 128MB PMB mappings X-Git-Tag: v2.6.35-rc1~504^2~26^2~1 X-Git-Url: http://ftp.safe.ca/?p=safe%2Fjmp%2Flinux-2.6;a=commitdiff_plain;h=c7b03fa0bdc04e00bfbdc4cc69da144b11108f37 sh: Do not try merging two 128MB PMB mappings There is a logic error in pmb_merge() that means we will incorrectly try to merge two 128MB PMB mappings into one mapping. However, 256MB isn't a valid PMB map size and pmb_merge() will actually drop the second 128MB mapping. This patch allows my SDK7786 board to boot when configured with CONFIG_MEMORY_SIZE=0x10000000. Signed-off-by: Matt Fleming --- diff --git a/arch/sh/mm/pmb.c b/arch/sh/mm/pmb.c index 3cc2193..c0fdc21 100644 --- a/arch/sh/mm/pmb.c +++ b/arch/sh/mm/pmb.c @@ -681,7 +681,7 @@ static void __init pmb_merge(struct pmb_entry *head) /* * The merged page size must be valid. */ - if (!pmb_size_valid(newsize)) + if (!depth || !pmb_size_valid(newsize)) return; head->flags &= ~PMB_SZ_MASK;