[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 28/31] dma/i82374: avoid double creation of i82374 de
From: |
Michael Tokarev |
Subject: |
[Qemu-devel] [PULL 28/31] dma/i82374: avoid double creation of i82374 device |
Date: |
Mon, 25 Sep 2017 00:22:46 +0300 |
From: Eduardo Otubo <address@hidden>
QEMU fails when used with the following command line:
./ppc64-softmmu/qemu-system-ppc64 -S -machine 40p,accel=tcg -device i82374
qemu-system-ppc64: hw/isa/isa-bus.c:110: isa_bus_dma: Assertion `!bus->dma[0]
&& !bus->dma[1]' failed.
Aborted (core dumped)
The 40p machine type already creates the device i82374. If specified in the
command line, it will try to create it again, hence generating the error. The
function isa_bus_dma() isn't supposed to be called twice for the same bus. One
way to avoid this problem is to set user_creatable=false.
A possible fix in a near future would be making
isa_bus_dma()/DMA_init()/i82374_realize() return an error instead of asserting
as well.
Signed-off-by: Eduardo Otubo <address@hidden>
Signed-off-by: Michael Tokarev <address@hidden>
---
hw/dma/i82374.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
index 6c0f975df0..e76dea8dc7 100644
--- a/hw/dma/i82374.c
+++ b/hw/dma/i82374.c
@@ -139,6 +139,11 @@ static void i82374_class_init(ObjectClass *klass, void
*data)
dc->realize = i82374_realize;
dc->vmsd = &vmstate_i82374;
dc->props = i82374_properties;
+ dc->user_creatable = false;
+ /*
+ * Reason: i82374_realize() crashes (assertion failure inside isa_bus_dma()
+ * if the device is instantiated twice.
+ */
}
static const TypeInfo i82374_info = {
--
2.11.0
- [Qemu-devel] [PULL 04/31] MAINTAINERS: add missing STM32 entry, (continued)
- [Qemu-devel] [PULL 04/31] MAINTAINERS: add missing STM32 entry, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 26/31] hw/display/virtio-gpu: Put the virtio-gpu-device into the display category, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 17/31] filter-mirror: segfault when specifying non existent device, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 16/31] MAINTAINERS: update docs/interop/ entries, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 12/31] MAINTAINERS: add missing AIO entry, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 21/31] remove trailing whitespace from qemu-options.hx, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 10/31] MAINTAINERS: add missing SSI entries, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 25/31] osdep: Fix ROUND_UP(64-bit, 32-bit), Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 11/31] MAINTAINERS: add missing entries for throttling infra, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 24/31] target/xtensa: Use the pre-defined MEMTXATTRS_UNSPECIFIED macro, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 28/31] dma/i82374: avoid double creation of i82374 device,
Michael Tokarev <=
- [Qemu-devel] [PULL 03/31] MAINTAINERS: add missing ARM entries, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 14/31] MAINTAINERS: add missing Cryptography entry, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 15/31] MAINTAINERS: update docs/devel/ entries, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 05/31] MAINTAINERS: add missing entry for vhost, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 23/31] trivial: Add missing "-m" parameter in docs/memory-hotplug.txt, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 13/31] MAINTAINERS: add missing entry for Generic Loader, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 08/31] MAINTAINERS: add missing qcow2 entry, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 18/31] util/qemu-thread-posix.c: Replace OS ifdefs with CONFIG_HAVE_SEM_TIMEDWAIT, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 30/31] Drop gld linker usage on SunOS, Michael Tokarev, 2017/09/24
- [Qemu-devel] [PULL 29/31] tests/boot-sector: Increase timeout to 600 seconds, Michael Tokarev, 2017/09/24