diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2018-04-09 17:29:09 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2018-04-09 17:29:10 +0100 |
commit | 915d34c5f99b0ab91517c69f54272bfdb6ca2b32 (patch) | |
tree | 52128c9a63fcd283e1a267452ff698b3bf119610 /hw/dma | |
parent | a84e937649f09d372e677b3978a933f1207513a2 (diff) | |
parent | e0014d4b3a955cfd8d517674703bfa87f340290a (diff) |
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
Miscellaneous bugfixes, including crash fixes from Alexey, Peter M. and
Thomas.
# gpg: Signature made Mon 09 Apr 2018 15:37:15 BST
# gpg: using RSA key BFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
# gpg: aka "Paolo Bonzini <pbonzini@redhat.com>"
# 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:
Add missing bit for SSE instr in VEX decoding
maint: Add .mailmap entries for patches claiming list authorship
dump: Fix build with newer gcc
device-crash-test: Remove fixed isa-fdc entry
qemu-pr-helper: Write pidfile more often
qemu-pr-helper: Daemonize before dropping privileges
virtio-serial: fix heapover-flow
kvmclock: fix clock_is_reliable on migration from QEMU < 2.9
hw/dma/i82374: Avoid double creation of the 82374 controller
hw/scsi: support SCSI-2 passthrough without PI
scsi-disk: allow customizing the SCSI version
scsi-disk: Don't enlarge min_io_size to max_io_size
configure: Add missing configure options to help text
i386/hyperv: error out if features requested but unsupported
i386/hyperv: add hv-frequencies cpu property
target/i386: WHPX: set CPUID_EXT_HYPERVISOR bit
memfd: fix vhost-user-test on non-memfd capable host
scripts/checkpatch.pl: Bug fix
target/i386: Fix andn instruction
sys_membarrier: fix up include directives
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/dma')
-rw-r--r-- | hw/dma/i82374.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c index 83c87d92e0..892f655a7e 100644 --- a/hw/dma/i82374.c +++ b/hw/dma/i82374.c @@ -23,6 +23,7 @@ */ #include "qemu/osdep.h" +#include "qapi/error.h" #include "hw/isa/isa.h" #include "hw/dma/i8257.h" @@ -118,13 +119,19 @@ static const MemoryRegionPortio i82374_portio_list[] = { static void i82374_realize(DeviceState *dev, Error **errp) { I82374State *s = I82374(dev); + ISABus *isa_bus = isa_bus_from_device(ISA_DEVICE(dev)); + + if (isa_get_dma(isa_bus, 0)) { + error_setg(errp, "DMA already initialized on ISA bus"); + return; + } + i8257_dma_init(isa_bus, true); portio_list_init(&s->port_list, OBJECT(s), i82374_portio_list, s, "i82374"); portio_list_add(&s->port_list, isa_address_space_io(&s->parent_obj), s->iobase); - i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true); memset(s->commands, 0, sizeof(s->commands)); } |