When different regions have the same address, we currently sort them by the priority. Also sort them by the region size.
Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- softmmu/memory.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/softmmu/memory.c b/softmmu/memory.c index af25987518..c28dcaf4d6 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -2960,7 +2960,8 @@ static void mtree_print_mr(const MemoryRegion *mr, unsigned int level, QTAILQ_FOREACH(ml, &submr_print_queue, mrqueue) { if (new_ml->mr->addr < ml->mr->addr || (new_ml->mr->addr == ml->mr->addr && - new_ml->mr->priority > ml->mr->priority)) { + (MR_SIZE(new_ml->mr->size) > MR_SIZE(ml->mr->size) || + new_ml->mr->priority > ml->mr->priority))) { QTAILQ_INSERT_BEFORE(ml, new_ml, mrqueue); new_ml = NULL; break; -- 2.21.3