diff mbox

exec: Skip mru section if it's a partial page and not resolving subpage

Message ID 20171114225941.072707456B5@zero.eik.bme.hu (mailing list archive)
State New, archived
Headers show

Commit Message

BALATON Zoltan Nov. 14, 2017, 10:42 p.m. UTC
This fixes a crash caused by picking the wrong memory region in
address_space_lookup_region seen with client code accessing a device
model that uses alias memory regions.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
 exec.c | 1 +
 1 file changed, 1 insertion(+)
diff mbox

Patch

diff --git a/exec.c b/exec.c
index 97a24a8..e5f2b9a 100644
--- a/exec.c
+++ b/exec.c
@@ -413,6 +413,7 @@  static MemoryRegionSection *address_space_lookup_region(AddressSpaceDispatch *d,
     bool update;
 
     if (section && section != &d->map.sections[PHYS_SECTION_UNASSIGNED] &&
+        (resolve_subpage || !section->offset_within_region) &&
         section_covers_addr(section, addr)) {
         update = false;
     } else {