diff options
| author | Peter Xu <peterx@redhat.com> | 2017-05-19 11:19:40 +0800 |
|---|---|---|
| committer | Michael S. Tsirkin <mst@redhat.com> | 2017-05-25 21:25:27 +0300 |
| commit | bf55b7afce53718ef96f4e6616da62c0ccac37dd (patch) | |
| tree | ac502b7d8fa21ab67434cd05c9a1390c6c2ddea6 /exec.c | |
| parent | 9964e96dc9999cf7f7c936ee854a795415d19b60 (diff) | |
| download | focaccia-qemu-bf55b7afce53718ef96f4e6616da62c0ccac37dd.tar.gz focaccia-qemu-bf55b7afce53718ef96f4e6616da62c0ccac37dd.zip | |
memory: tune last param of iommu_ops.translate()
This patch converts the old "is_write" bool into IOMMUAccessFlags. The difference is that "is_write" can only express either read/write, but sometimes what we really want is "none" here (neither read nor write). Replay is an good example - during replay, we should not check any RW permission bits since thats not an actual IO at all. CC: Paolo Bonzini <pbonzini@redhat.com> CC: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Acked-by: David Gibson <david@gibson.dropbear.id.au> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'exec.c')
| -rw-r--r-- | exec.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/exec.c b/exec.c index ff16f04f2b..b1db12fe36 100644 --- a/exec.c +++ b/exec.c @@ -486,7 +486,8 @@ static MemoryRegionSection address_space_do_translate(AddressSpace *as, break; } - iotlb = mr->iommu_ops->translate(mr, addr, is_write); + iotlb = mr->iommu_ops->translate(mr, addr, is_write ? + IOMMU_WO : IOMMU_RO); addr = ((iotlb.translated_addr & ~iotlb.addr_mask) | (addr & iotlb.addr_mask)); *plen = MIN(*plen, (addr | iotlb.addr_mask) - addr + 1); |