The memory-device list built by memory_device_build_list is ordered by its address, this means if the tmp range exceed the hinted range, all the following range will not overlap with it.
Signed-off-by: Wei Yang <richardw.y...@linux.intel.com> --- hw/mem/memory-device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/mem/memory-device.c b/hw/mem/memory-device.c index 413b514586..aea47ab3e8 100644 --- a/hw/mem/memory-device.c +++ b/hw/mem/memory-device.c @@ -180,7 +180,7 @@ static uint64_t memory_device_get_free_addr(MachineState *ms, range_make_empty(&new); break; } - } else if (!hint) { + } else if (!hint || range_lob(&tmp) > range_upb(&new)) { break; } } -- 2.17.1