From f74fcb194f85260b76852079f4e91907553ae426 Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Sun, 4 Mar 2018 01:56:02 -0500 Subject: [PATCH] exec: Explicitly export target AS from address_space_translate_internal This adds an AS** parameter to address_space_do_translate() to make it easier for the next patch to share FlatViews. This should cause no behavioural change. Backports commit 6424975ce912061ac9e4a375237b0c89d83d93e3 from qemu --- qemu/exec.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/qemu/exec.c b/qemu/exec.c index ba16ed7a..4e0e3283 100644 --- a/qemu/exec.c +++ b/qemu/exec.c @@ -398,7 +398,8 @@ static MemoryRegionSection address_space_do_translate(AddressSpace *as, hwaddr *xlat, hwaddr *plen, bool is_write, - bool is_mmio) + bool is_mmio, + AddressSpace **target_as) { IOMMUTLBEntry iotlb; MemoryRegionSection *section; @@ -425,6 +426,7 @@ static MemoryRegionSection address_space_do_translate(AddressSpace *as, } as = iotlb.target_as; + *target_as = iotlb.target_as; } *xlat = addr; @@ -448,7 +450,7 @@ IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr, /* This can never be MMIO. */ section = address_space_do_translate(as, addr, &xlat, &plen, - is_write, false); + is_write, false, &as); /* Illegal translation */ if (section.mr == &as->uc->io_mem_unassigned) { @@ -470,7 +472,7 @@ IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr, /* Convert to address mask */ plen -= 1; - result.target_as = section.address_space; + result.target_as = as; result.iova = addr & ~plen; result.translated_addr = xlat & ~plen; result.addr_mask = plen; @@ -491,7 +493,8 @@ MemoryRegion *address_space_translate(AddressSpace *as, hwaddr addr, MemoryRegionSection section; /* This can be MMIO, so setup MMIO bit. */ - section = address_space_do_translate(as, addr, xlat, plen, is_write, true); + section = address_space_do_translate(as, addr, xlat, plen, is_write, true, + &as); mr = section.mr; // Unicorn: if'd out