qemu-e2k/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
acpi ipmi: Fix SSIF ACPI handling to use the right CRS 2019-09-20 14:08:10 -05:00
adc
alpha
arm memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
audio
block virtio-blk: schedule virtio_notify_config to run on main context 2019-10-08 14:28:25 +01:00
bt
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
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
i2c
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
intc xive: Improve irq claim/free path 2019-10-04 19:08:23 +10:00
ipack
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
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
net spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
nios2
nvram
openrisc
pci
pci-bridge numa: move numa global variable nb_numa_nodes into MachineState 2019-09-03 11:26:55 -03:00
pci-host
pcmcia
ppc ppc patch queue 2019-10-04 2019-10-07 13:49:02 +01:00
rdma
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
sh4
smbios smbios:ipmi: Ignore IPMI devices with no fwinfo function 2019-09-20 14:08:10 -05:00
sparc
sparc64
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
tricore
unicore32
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
xen xen-bus: only set the xen device frontend state if it is missing 2019-09-24 12:21:29 +01:00
xenpv
xtensa
Kconfig
Makefile.objs