qemu/hw
Sergio Lopez 9b92fbcf45 virtio-blk: schedule virtio_notify_config to run on main context
virtio_notify_config() needs to acquire the global mutex, which isn't
allowed from an iothread, and may lead to a deadlock like this:

 - main thead
  * Has acquired: qemu_global_mutex.
  * Is trying the acquire: iothread AioContext lock via
    AIO_WAIT_WHILE (after aio_poll).

 - iothread
  * Has acquired: AioContext lock.
  * Is trying to acquire: qemu_global_mutex (via
    virtio_notify_config->prepare_mmio_access).

If virtio_blk_resize() is called from an iothread, schedule
virtio_notify_config() to be run in the main context BH.

[Removed unnecessary newline as suggested by Kevin Wolf
<kwolf@redhat.com>.
--Stefan]

Signed-off-by: Sergio Lopez <slp@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-id: 20190916112411.21636-1-slp@redhat.com
Message-Id: <20190916112411.21636-1-slp@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-10-08 14:28:25 +01:00
..
9pfs 9p: simplify source file selection 2019-08-20 17:26:19 +02:00
acpi ipmi: Fix SSIF ACPI handling to use the right CRS 2019-09-20 14:08:10 -05:00
adc Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
alpha Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
arm memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
audio audio: remove audio_MIN, audio_MAX 2019-08-21 09:13:37 +02:00
block virtio-blk: schedule virtio_notify_config to run on main context 2019-10-08 14:28:25 +01:00
bt Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
char spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
core hw/core/loader: Fix possible crash in rom_copy() 2019-10-01 11:42:27 +02:00
cpu hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
cris Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
display ati: use vga_read_byte in ati_cursor_define 2019-09-19 10:37:46 +02:00
dma hw/dma/xilinx_axi: Use object_initialize_child for correct ref. counting 2019-09-03 16:20:34 +01:00
gpio hw/gpio: Add basic Aspeed GPIO model for AST2400 and AST2500 2019-09-13 16:05:00 +01:00
hppa hppa: fix leak from g_strdup_printf 2019-10-04 18:49:17 +02:00
hyperv Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
i2c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
i386 memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
ide ide: fix leak from qemu_allocate_irqs 2019-10-04 18:49:16 +02:00
input sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
intc xive: Improve irq claim/free path 2019-10-04 19:08:23 +10:00
ipack Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ipmi ipmi: Add an SMBus IPMI interface 2019-09-20 14:08:10 -05:00
isa hw/isa: Introduce a CONFIG_ISA_SUPERIO switch for isa-superio.c 2019-10-04 18:49:16 +02:00
lm32 Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
m68k mcf5208: fix leak from qemu_allocate_irqs 2019-10-04 18:49:16 +02:00
mem numa: move numa global variable nb_numa_nodes into MachineState 2019-09-03 11:26:55 -03:00
microblaze microblaze: fix leak of fdevice tree blob 2019-10-04 18:49:16 +02:00
mips mips: fix memory leaks in board initialization 2019-10-04 18:49:17 +02:00
misc trace: Remove trailing newline in events 2019-09-18 10:19:47 +01:00
moxie Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
net spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
nios2 Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
nvram sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
openrisc Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
pci Include sysemu/sysemu.h a lot less 2019-08-16 13:31:53 +02:00
pci-bridge numa: move numa global variable nb_numa_nodes into MachineState 2019-09-03 11:26:55 -03:00
pci-host hw/core: Add a config switch for the "or-irq" device 2019-08-20 09:11:17 +02:00
pcmcia Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc ppc patch queue 2019-10-04 2019-10-07 13:49:02 +01:00
rdma sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
riscv riscv: sifive_u: Update model and compatible strings in device tree 2019-09-17 08:42:49 -07:00
s390x s390: do not call memory_region_allocate_system_memory() multiple times 2019-09-30 13:51:50 +02:00
scsi trace: Remove trailing newline in events 2019-09-18 10:19:47 +01:00
sd trace: Remove trailing newline in events 2019-09-18 10:19:47 +01:00
semihosting Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
sh4 sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
smbios smbios:ipmi: Ignore IPMI devices with no fwinfo function 2019-09-20 14:08:10 -05:00
sparc sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
sparc64 hw/misc: Add a config switch for the "unimplemented" device 2019-08-20 09:11:17 +02:00
ssi aspeed/smc: Calculate checksum on normal DMA 2019-09-13 16:05:01 +01:00
timer lm32: do not leak memory on object_new/object_unref 2019-10-04 18:49:17 +02:00
tpm Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
tricore Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
unicore32 Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
usb usb-mtp: add sanity checks on rootdir 2019-08-29 07:31:12 +02:00
vfio memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
virtio memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
watchdog sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
xen xen-bus: only set the xen device frontend state if it is missing 2019-09-24 12:21:29 +01:00
xenpv Include sysemu/sysemu.h a lot less 2019-08-16 13:31:53 +02:00
xtensa sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
Kconfig hw/core: Add a config switch for the "register" device 2019-08-20 09:11:05 +02:00
Makefile.objs Makefile: do not repeat $(CONFIG_SOFTMMU) in hw/Makefile.objs 2019-07-15 20:58:37 +02:00