summaryrefslogtreecommitdiffstats
path: root/exec.c
diff options
context:
space:
mode:
authorPeter Maydell2015-03-19 11:07:23 +0100
committerPeter Maydell2015-03-19 11:07:23 +0100
commit1f3500976d3d9d77718ba9b0e69cd4e32239ebfc (patch)
tree4389c54ae07345591dfadb0b30d528df3e29711f /exec.c
parentUpdate version for v2.3.0-rc0 release (diff)
parentexec: Respect as_tranlsate_internal length clamp (diff)
downloadqemu-1f3500976d3d9d77718ba9b0e69cd4e32239ebfc.tar.gz
qemu-1f3500976d3d9d77718ba9b0e69cd4e32239ebfc.tar.xz
qemu-1f3500976d3d9d77718ba9b0e69cd4e32239ebfc.zip
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
- kvm: ioeventfd fix for PPC64LE - virtio-scsi: misc fixes - fix for --enable-profiler - nbd: fixes from Max - build: fix for scripts/make_device_config.sh - exec: fix for address_space_translate # gpg: Signature made Wed Mar 18 11:11:08 2015 GMT using RSA key ID 78C7AE83 # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini/tags/for-upstream: exec: Respect as_tranlsate_internal length clamp virtio-scsi-dataplane: fix memory leak in virtio_scsi_vring_init profiler: Reenable built-in profiler kvm: fix ioeventfd endianness on bi-endian architectures virtio-scsi: Fix assert in virtio_scsi_push_event build: pass .d file name to scripts/make_device_config.sh, fix makefile target coroutine-io: Return -errno in case of error nbd: Drop unexpected data for NBD_OPT_LIST nbd: Fix interpretation of the export flags nbd: Fix nbd_receive_options() nbd: Set block size to BDRV_SECTOR_SIZE nbd: Fix potential signed overflow issues qemu-nbd: fork() can fail nbd: Handle blk_getlength() failure nbd: Pass return value from nbd_handle_list() nbd: Fix nbd_establish_connection()'s return value qemu-nbd: Detect unused partitions by system == 0 util/uri: Add overflow check to rfc3986_parse_port nbd: Fix overflow return value Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'exec.c')
-rw-r--r--exec.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/exec.c b/exec.c
index e97071a3ec..8b922db612 100644
--- a/exec.c
+++ b/exec.c
@@ -380,7 +380,6 @@ MemoryRegion *address_space_translate(AddressSpace *as, hwaddr addr,
IOMMUTLBEntry iotlb;
MemoryRegionSection *section;
MemoryRegion *mr;
- hwaddr len = *plen;
rcu_read_lock();
for (;;) {
@@ -395,7 +394,7 @@ MemoryRegion *address_space_translate(AddressSpace *as, hwaddr addr,
iotlb = mr->iommu_ops->translate(mr, addr, is_write);
addr = ((iotlb.translated_addr & ~iotlb.addr_mask)
| (addr & iotlb.addr_mask));
- len = MIN(len, (addr | iotlb.addr_mask) - addr + 1);
+ *plen = MIN(*plen, (addr | iotlb.addr_mask) - addr + 1);
if (!(iotlb.perm & (1 << is_write))) {
mr = &io_mem_unassigned;
break;
@@ -406,10 +405,9 @@ MemoryRegion *address_space_translate(AddressSpace *as, hwaddr addr,
if (xen_enabled() && memory_access_is_direct(mr, is_write)) {
hwaddr page = ((addr & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE) - addr;
- len = MIN(page, len);
+ *plen = MIN(page, *plen);
}
- *plen = len;
*xlat = addr;
rcu_read_unlock();
return mr;