Commit 5e72d9e4 authored by Jan Beulich's avatar Jan Beulich Committed by Ingo Molnar

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: default avatarJan Beulich <jbeulich@novell.com>
Acked-by: default avatarYinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 59ef48a5
...@@ -746,7 +746,7 @@ unsigned long __init_refok init_memory_mapping(unsigned long start, ...@@ -746,7 +746,7 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
old_start = mr[i].start; old_start = mr[i].start;
memmove(&mr[i], &mr[i+1], memmove(&mr[i], &mr[i+1],
(nr_range - 1 - i) * sizeof (struct map_range)); (nr_range - 1 - i) * sizeof (struct map_range));
mr[i].start = old_start; mr[i--].start = old_start;
nr_range--; nr_range--;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment