aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2016-03-08 04:53:36 +0000
committerPeter Maydell <peter.maydell@linaro.org>2016-03-08 04:53:37 +0000
commit97556fe80e4f7252300b3498b3477fb4295153a3 (patch)
tree7e49b80e86e59e38d353a8a2f39857780f0fddbe /hw
parent1464ad45cd6cdeb0b5c1a54d3d3791396e47e52f (diff)
parent4792b7e9d5254daa383cb38d60d79c2b000ca9fc (diff)
downloadqemu-97556fe80e4f7252300b3498b3477fb4295153a3.zip
qemu-97556fe80e4f7252300b3498b3477fb4295153a3.tar.gz
qemu-97556fe80e4f7252300b3498b3477fb4295153a3.tar.bz2
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
* RAMBlock vs. MemoryRegion cleanups from Fam * mru_section optimization from Fam * memory.txt improvements from Peter and Xiaoqiang * i8257 fix from Hervé * -daemonize fix * Cleanups and small fixes from Alex, Praneith, Wei # gpg: Signature made Mon 07 Mar 2016 17:08:59 GMT using RSA key ID 78C7AE83 # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" * remotes/bonzini/tags/for-upstream: scsi-bus: Remove tape command from scsi_req_xfer kvm/irqchip: use bitmap utility for gsi tracking MAINTAINERS: Add entry for include/sysemu/kvm*.h doc/memory.txt: correct description of MemoryRegionOps fields doc/memory.txt: correct a logic error icount: possible options for sleep are on or off exec: Introduce AddressSpaceDispatch.mru_section exec: Factor out section_covers_addr exec: Pass RAMBlock pointer to qemu_ram_free memory: Drop MemoryRegion.ram_addr memory: Implement memory_region_get_ram_addr with mr->ram_block memory: Move assignment to ram_block to memory_region_init_* exec: Return RAMBlock pointer from allocating functions i8257: fix Terminal Count status log: do not log if QEMU is daemonized but without -D Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw')
-rw-r--r--hw/dma/i8257.c4
-rw-r--r--hw/misc/ivshmem.c9
-rw-r--r--hw/scsi/scsi-bus.c1
3 files changed, 10 insertions, 4 deletions
diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
index 5a52707..6078893 100644
--- a/hw/dma/i8257.c
+++ b/hw/dma/i8257.c
@@ -342,6 +342,10 @@ static void i8257_channel_run(I8257State *d, int ichan)
r->now[COUNT], (r->base[COUNT] + 1) << ncont);
r->now[COUNT] = n;
ldebug ("dma_pos %d size %d\n", n, (r->base[COUNT] + 1) << ncont);
+ if (n == (r->base[COUNT] + 1) << ncont) {
+ ldebug("transfer done\n");
+ d->status |= (1 << ichan);
+ }
}
static void i8257_dma_run(void *opaque)
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index 48b7a34..1838bc8 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -400,7 +400,7 @@ static int create_shared_memory_BAR(IVShmemState *s, int fd, uint8_t attr,
memory_region_init_ram_ptr(&s->ivshmem, OBJECT(s), "ivshmem.bar2",
s->ivshmem_size, ptr);
- qemu_set_ram_fd(s->ivshmem.ram_addr, fd);
+ qemu_set_ram_fd(memory_region_get_ram_addr(&s->ivshmem), fd);
vmstate_register_ram(&s->ivshmem, DEVICE(s));
memory_region_add_subregion(&s->bar, 0, &s->ivshmem);
@@ -661,7 +661,8 @@ static void ivshmem_read(void *opaque, const uint8_t *buf, int size)
}
memory_region_init_ram_ptr(&s->ivshmem, OBJECT(s),
"ivshmem.bar2", s->ivshmem_size, map_ptr);
- qemu_set_ram_fd(s->ivshmem.ram_addr, incoming_fd);
+ qemu_set_ram_fd(memory_region_get_ram_addr(&s->ivshmem),
+ incoming_fd);
vmstate_register_ram(&s->ivshmem, DEVICE(s));
IVSHMEM_DPRINTF("guest h/w addr = %p, size = %" PRIu64 "\n",
@@ -996,8 +997,10 @@ static void pci_ivshmem_exit(PCIDevice *dev)
strerror(errno));
}
- if ((fd = qemu_get_ram_fd(s->ivshmem.ram_addr)) != -1)
+ fd = qemu_get_ram_fd(memory_region_get_ram_addr(&s->ivshmem));
+ if (fd != -1) {
close(fd);
+ }
}
vmstate_unregister_ram(&s->ivshmem, DEVICE(dev));
diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
index 6dcdbc0..a21752b 100644
--- a/hw/scsi/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
@@ -989,7 +989,6 @@ static int scsi_req_xfer(SCSICommand *cmd, SCSIDevice *dev, uint8_t *buf)
}
/* fall through */
case READ_10:
- case RECOVER_BUFFERED_DATA:
case READ_12:
case READ_16:
cmd->xfer *= dev->blocksize;