Let's make sure to not merge when different memory regions are involved. Unlikely, but theoretically possible.
Cc: Marc-André Lureau <marcandre.lur...@redhat.com> Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: "Michael S. Tsirkin" <m...@redhat.com> Cc: Alex Williamson <alex.william...@redhat.com> Cc: Dr. David Alan Gilbert <dgilb...@redhat.com> Cc: Igor Mammedov <imamm...@redhat.com> Cc: Claudio Fontana <cfont...@suse.de> Cc: Thomas Huth <th...@redhat.com> Cc: "Alex Bennée" <alex.ben...@linaro.org> Cc: Peter Xu <pet...@redhat.com> Cc: Laurent Vivier <lviv...@redhat.com> Signed-off-by: David Hildenbrand <da...@redhat.com> --- softmmu/memory_mapping.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/softmmu/memory_mapping.c b/softmmu/memory_mapping.c index 2677392de7..ad4911427a 100644 --- a/softmmu/memory_mapping.c +++ b/softmmu/memory_mapping.c @@ -230,7 +230,8 @@ static void guest_phys_blocks_region_add(MemoryListener *listener, /* we want continuity in both guest-physical and host-virtual memory */ if (predecessor->target_end < target_start || - predecessor->host_addr + predecessor_size != host_addr) { + predecessor->host_addr + predecessor_size != host_addr || + predecessor->mr != section->mr) { predecessor = NULL; } } -- 2.29.2