qemu/include/hw
Stefan Hajnoczi ed18b1ed4f virtio-scsi: replace AioContext lock with tmf_bh_lock
Protect the Task Management Function BH state with a lock. The TMF BH
runs in the main loop thread. An IOThread might process a TMF at the
same time as the TMF BH is running. Therefore tmf_bh_list and tmf_bh
must be protected by a lock.

Run TMF request completion in the IOThread using aio_wait_bh_oneshot().
This avoids more locking to protect the virtqueue and SCSI layer state.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231205182011.1976568-2-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2023-12-21 22:49:27 +01:00
..
acpi virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
adc hw/arm/npcm7xx: Declare QOM macros using OBJECT_DECLARE_SIMPLE_TYPE() 2023-01-12 17:15:09 +00:00
arm hw/arm/stm32f100: Report error when incorrect CPU is used 2023-11-20 15:30:59 +00:00
audio virtio-sound: implement audio output (TX) 2023-11-07 03:39:10 -05:00
block swim: update IWM/ISM register block decoding 2023-10-06 10:33:43 +02:00
char hw/char/stm32f2xx_usart: Add more definitions for CR1 register 2023-11-02 13:36:45 +00:00
core hw/cpu: Update the comments of nr_cores and nr_dies 2023-11-07 13:08:48 +01:00
cpu
cris include: Include headers where needed 2023-01-08 01:54:22 -05:00
cxl hw/cxl: spelling fixes: limitaions, potentialy, intialized 2023-11-15 11:09:17 +03:00
display ramfb: add migration support 2023-10-18 10:10:49 +02:00
dma include: Include headers where needed 2023-01-08 01:54:22 -05:00
firmware hw/smbios: add core_count2 to smbios table type 4 2022-11-07 14:08:17 -05:00
gpio hw/gpio/nrf51: implement DETECT signal 2023-08-22 17:30:59 +01:00
hyperv include/hw/hyperv/dynmem-proto.h: spelling fix: nunber, atleast 2023-11-15 12:06:05 +03:00
i2c hw/i2c: pmbus: add VCAP register 2023-11-07 13:08:49 +01:00
i386 hw: Add compat machines for 9.0 2023-12-20 10:29:23 +01:00
ide ide/pci: introduce pci_ide_update_mode() function 2023-11-21 12:45:21 +01:00
input hw/input/stellaris_gamepad: Convert to qemu_input_handler_register() 2023-11-02 12:52:06 +00:00
intc hw/m68k/irqc: Pass CPU using QOM link property 2023-11-01 07:20:34 +01:00
ipack ipack: Rename ipack_bus_new_inplace() to ipack_bus_init() 2021-09-30 13:42:10 +01:00
ipmi
isa hw/isa/vt82c686: Bring back via_isa_set_irq() 2023-11-28 14:26:37 +01:00
loongarch hw/loongarch/virt: Remove unused ISA Bus 2023-10-13 10:03:47 +08:00
m68k hw/char/mcf_uart: Have mcf_uart_create() return DeviceState 2023-11-01 07:31:05 +01:00
mem memory-device: Support empty memory devices 2023-11-03 20:26:59 +01:00
mips hw/mips: Merge 'hw/mips/cpudevs.h' with 'target/mips/cpu.h' 2023-10-19 23:13:27 +02:00
misc * Add compat machines for QEMU 9.0 2023-12-20 09:40:16 -05:00
net include/: spelling fixes 2023-09-08 13:08:52 +03:00
nubus Clean up header guards that don't match their file name 2022-05-11 16:49:06 +02:00
nvram hw: Replace anti-social QOM type names (again) 2023-12-20 10:29:23 +01:00
openrisc hw/openrisc: Split re-usable boot time apis out to boot.c 2022-09-04 07:02:56 +01:00
pci hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps 2023-11-03 09:20:31 +01:00
pci-bridge hw/cxl: Add a switch mailbox CCI function 2023-11-07 03:39:11 -05:00
pci-host hw/pci-host: Update PHB5 XSCOM registers 2023-11-07 15:49:41 -03:00
ppc ppc patch queue for 2023-11-07: 2023-11-08 20:35:00 +08:00
rdma qapi: introduce x-query-rdma QMP command 2021-11-02 15:55:14 +00:00
remote include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
riscv riscv: spelling fixes 2023-09-08 13:08:52 +03:00
rtc hw/rtc/aspeed_rtc: Use 64-bit offset for holding time_t difference 2023-08-31 09:45:18 +01:00
rx Clean up header guards that don't match their file name 2022-05-11 16:49:06 +02:00
s390x * Fix s390x CPU reconfiguration information in the SCLP facility map 2023-11-08 20:34:36 +08:00
scsi scsi: only access SCSIDevice->requests from one thread 2023-12-21 22:49:27 +01:00
sd hw/sd: Introduce a "sd-card" SPI variant model 2023-09-01 11:40:04 +02:00
sensor hw/sensor: Add IC_DEVICE_ID to ISL voltage regulators 2022-07-14 16:24:38 +02:00
sh4 hw/intc/sh_intc: Inline and drop sh_intc_source() function 2021-10-30 18:39:37 +02:00
southbridge hw/isa/piix: Allow for optional PIT creation in PIIX3 2023-10-22 05:18:17 -04:00
sparc hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
ssi hw/misc, hw/ssi: Fix some URLs for AMD / Xilinx models 2023-11-27 15:38:43 +00:00
timer hw: Replace isa_get_irq() by isa_bus_get_irq() when ISABus is available 2023-02-27 22:29:02 +01:00
tricore Do not include hw/hw.h if it is not necessary 2023-02-27 09:15:38 +01:00
usb include: Include headers where needed 2023-01-08 01:54:22 -05:00
vfio vfio: Introduce a helper function to initialize VFIODevice 2023-12-19 19:03:38 +01:00
virtio virtio-scsi: replace AioContext lock with tmf_bh_lock 2023-12-21 22:49:27 +01:00
watchdog hw/watchdog: Allwinner WDT emulation for system reset 2023-04-20 10:21:13 +01:00
xen xen: fix condition for skipping virtio-mmio defines 2023-12-12 11:18:32 +01:00
xtensa
boards.h hw: Add compat machines for 9.0 2023-12-20 10:29:23 +01:00
clock.h include/: spelling fixes 2023-09-08 13:08:52 +03:00
elf_ops.h include/hw/elf: Remove truncating signed casts 2023-11-06 18:49:34 -08:00
fw-path-provider.h
hotplug.h pci: fix 'hotplugglable' property behavior 2023-03-07 12:38:59 -05:00
hw.h compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
ide.h hw/ide: Declare ide_get_[geometry/bios_chs_trans] in 'hw/ide/internal.h' 2023-02-27 22:29:02 +01:00
irq.h hw/core/irq: remove unused 'qemu_irq_split' function 2022-04-21 11:37:04 +01:00
loader-fit.h
loader.h hw/loader: Clean up global variable shadowing in rom_add_file() 2023-11-07 13:08:48 +01:00
nmi.h
or-irq.h hw: Replace qemu_or_irq typedef by OrIRQState 2023-02-27 13:27:05 +00:00
pcmcia.h replace TABs with spaces 2023-03-20 12:43:50 +01:00
platform-bus.h
ptimer.h ptimer: Rename PTIMER_POLICY_DEFAULT to PTIMER_POLICY_LEGACY 2022-05-19 16:19:03 +01:00
qdev-clock.h clock: Add ClockEvent parameter to callbacks 2021-03-08 17:20:01 +00:00
qdev-core.h bulk: Do not declare function prototypes using 'extern' keyword 2023-08-31 19:47:43 +02:00
qdev-dma.h
qdev-properties-system.h migration: mode parameter 2023-11-01 16:13:58 +01:00
qdev-properties.h qdev: Rework array properties based on list visitor 2023-11-10 18:19:19 +01:00
register.h hw/core/register: Add more 64-bit utilities 2021-09-01 11:59:12 +10:00
registerfields.h hw/registerfields: Add shared fields macros 2022-06-22 09:49:34 +02:00
resettable.h
stream.h
sysbus.h
usb.h hw/usb: fix tab indentation 2022-11-08 11:13:48 +01:00
vmstate-if.h