aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2008-09-12 10:43:04 -0400
committerIngo Molnar <mingo@elte.hu>2008-10-13 04:21:16 -0400
commit5e72d9e4850c91b6a0f06fa803f7393b55a38aa8 (patch)
tree8c4aff01fd6538abad4a25f9cbfdc09180f29069 /arch
parent59ef48a58e59cc27255d526ae3fa60ddcd977208 (diff)
x86-64: fix combining of regions in init_memory_mapping()
When nr_range gets decremented, the same slot must be considered for coalescing with its new successor again. The issue is apparently pretty benign to native code, but surfaces as a boot time crash in our forward ported Xen tree (where the page table setup overall works differently than in native). Signed-off-by: Jan Beulich <jbeulich@novell.com> Acked-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/mm/init_64.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 7c8bb46e83e4..b8e461d49412 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -746,7 +746,7 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
746 old_start = mr[i].start; 746 old_start = mr[i].start;
747 memmove(&mr[i], &mr[i+1], 747 memmove(&mr[i], &mr[i+1],
748 (nr_range - 1 - i) * sizeof (struct map_range)); 748 (nr_range - 1 - i) * sizeof (struct map_range));
749 mr[i].start = old_start; 749 mr[i--].start = old_start;
750 nr_range--; 750 nr_range--;
751 } 751 }
752 752