Old and new code are not different in any way in this respect - both
overwrite the old entry at index i with the entry at index i+1 and then
set the start of the i-th entry back to what it was before the overwrite,
effectively combining them. The patch just makes sure that the index
isn't being updated at the same time as nr_range (because if you update
both you effectively skip one).
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). Since the underlying
issue was present in native (and since I assume if there is an attempt
to merge subsequent regions, then it should work right), I nevertheless
submitted the patch for native inclusion.
Jan
--