qemu/hw/block
Cornelia Huck 8caf907f07 dataplane: Fix startup race.
Avoid trying to setup dataplane again if dataplane setup is already in
progress. This may happen if an eventfd is triggered during setup.

I saw this occasionally with an experimental s390 irqfd implementation:

virtio_blk_handle_output
-> virtio_blk_data_plane_start
-> virtio_ccw_set_host_notifier
...
-> virtio_queue_set_host_notifier_fd_handler
-> virtio_queue_host_notifier_read
-> virtio_queue_notify_vq
-> virtio_blk_handle_output
-> virtio_blk_data_plane_start
-> vring_setup
-> hostmem_init
-> memory_listener_register
-> BOOM

As virtio-ccw tries to follow what virtio-pci does, it might be triggerable
for other platforms as well.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-09-06 15:25:09 +02:00
..
dataplane dataplane: Fix startup race. 2013-09-06 15:25:09 +02:00
block.c hw: move target-independent files to subdirectories 2013-04-08 18:13:12 +02:00
cdrom.c hw: move target-independent files to subdirectories 2013-04-08 18:13:12 +02:00
ecc.c hw: move target-independent files to subdirectories 2013-04-08 18:13:12 +02:00
fdc.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
hd-geometry.c hw: move target-independent files to subdirectories 2013-04-08 18:13:12 +02:00
m25p80.c block/m25p80: Update Micron entries 2013-07-19 12:52:03 +04:00
Makefile.objs pc_sysfw: do not make it a device anymore 2013-08-12 09:31:14 -05:00
nand.c nand: Don't inherit from Sysbus 2013-06-25 19:15:46 +01:00
nvme.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
nvme.h NVMe: Initial commit for new storage interface 2013-06-17 17:47:59 +02:00
onenand.c onenand: QOM cast cleanup 2013-07-29 21:05:58 +02:00
pflash_cfi01.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
pflash_cfi02.c pflash_cfi02.c: fix debug macro 2013-09-01 19:32:42 +04:00
tc58128.c hw: move block devices to hw/block/, configure via default-configs/ 2013-04-08 18:13:13 +02:00
virtio-blk.c Merge remote-tracking branch 'stefanha/block' into staging 2013-07-29 11:33:48 -05:00
xen_blkif.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
xen_disk.c xen_disk: simplify blk_disconnect with refcnt 2013-09-06 15:25:08 +02:00