qemu-cr16/hw
Hanna Czenczek 46228925ed vhost: Always initialize cached vring data
vhost_virtqueue_start() can exit early if the descriptor ring address is
0, assuming the virtqueue isn’t ready to start.

In this case, all cached vring information (size, physical address,
pointer) is left as-is.  This is OK at first startup, when that info is
still initialized to 0, but after a reset, it will retain old (outdated)
information.

vhost_virtqueue_start() must make sure these values are (re-)set
properly before exiting.

(When using an IOMMU, these outdated values can stall the device:
vhost_dev_start() deliberately produces an IOMMU miss event for each
used vring.  If used_phys contains an outdated value, the resulting
lookup may fail, forcing the device to be stopped.)

Cc: qemu-stable@nongnu.org
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20251208113008.153249-1-hreitz@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-12-09 20:48:39 +01:00
..
9pfs hw/9pfs: Correct typo 2025-12-09 20:42:59 +01:00
acpi acpi/generic_event_device.c: enable use_hest_addr for QEMU 10.x 2025-10-05 08:06:32 -04:00
adc qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
alpha hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
arm aspeed: Deprecate the fby35 machine 2025-12-05 15:37:18 +00:00
audio hw/audio/lm4549: Don't try to open a zero-frequency audio voice 2025-11-14 13:20:10 +00:00
avr qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
block block: enable stats-intervals for storage devices 2025-10-29 12:10:09 +01:00
char * char: rename CharBackend->CharFrontend 2025-10-29 10:43:56 +01:00
core hw/core/machine: Provide a description for aux-ram-share property 2025-11-25 22:45:30 +01:00
cpu qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cxl cxl: Clean up includes 2025-11-14 13:18:04 +00:00
display hw/display/exynos4210_fimd: Account for zero length in fimd_update_memory_section() 2025-11-24 11:01:23 +00:00
dma hw/dma/zynq-devcfg: Fix register memory 2025-11-18 19:59:31 +01:00
fsi qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
gpio hw/gpio/pl061: Declare pullups/pulldowns as 8-bit types 2025-10-31 16:26:44 +00:00
hppa hw/hppa: Enable LASI i82596 network on 715 machine 2025-11-04 16:14:51 +01:00
hyperv system/ramblock: Move ram_block_discard_*_range() declarations 2025-10-07 03:37:03 +02:00
i2c hw/i2c/smbus_eeprom: Add minimum write recovery time for DDR2 2025-10-21 20:09:57 +02:00
i386 q35: increase default tseg size 2025-11-09 08:25:18 -05:00
ide hw/ide/ide-internal: Move dma_buf_commit() into ide "namespace" 2025-10-21 20:16:47 +02:00
input hid: fix incorrect return value for hid 2025-10-05 09:46:06 +03:00
intc hw/intc/ioapic: Fix ACCEL_KERNEL_GSI_IRQFD_POSSIBLE typo 2025-11-18 19:56:11 +01:00
ipack qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ipmi * char: rename CharBackend->CharFrontend 2025-10-29 10:43:56 +01:00
isa x86: ich9: fix default value of 'No Reboot' bit in GCS 2025-10-05 09:01:08 -04:00
loongarch hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
m68k hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
mem cxl: Clean up includes 2025-11-14 13:18:04 +00:00
microblaze hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
mips * char: rename CharBackend->CharFrontend 2025-10-29 10:43:56 +01:00
misc hw/aspeed/{xdma, rtc, sdhci}: Fix endianness to DEVICE_LITTLE_ENDIAN 2025-11-25 22:45:30 +01:00
net ebpf: Make ebpf_rss_load() return value consistent with @errp 2025-11-18 19:59:36 +01:00
nubus hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
nvme hw/nvme: Validate PMR memory size 2025-11-25 09:21:41 +01:00
nvram nw/nvram/ds1225y: Fix nvram MemoryRegion owner 2025-10-28 08:19:18 +01:00
openrisc hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
pci hw/pci: Make msix_init take a uint32_t for nentries 2025-11-25 22:41:40 +01:00
pci-bridge hw/arm/smmu-common: Check SMMU has PCIe Root Complex association 2025-09-16 17:31:54 +01:00
pci-host hw/pci-host/aspeed_pcie: Update ASPEED PCIe Root Port capabilities and enable MSI to support hotplug 2025-11-24 07:52:42 +01:00
ppc hw/ppc/pegasos: Fix memory leak 2025-11-09 16:54:44 +05:30
remote hw: Remove unnecessary 'system/ram_addr.h' header 2025-10-07 05:03:56 +02:00
riscv hw/riscv: Replace target_ulong uses 2025-10-30 14:48:26 +01:00
rtc hw/aspeed/{xdma, rtc, sdhci}: Fix endianness to DEVICE_LITTLE_ENDIAN 2025-11-25 22:45:30 +01:00
rx hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
s390x hw/s390x: Fix a possible crash with passed-through virtio devices 2025-11-21 08:33:15 +01:00
scsi hw/scsi: Use error_setg_file_open() for a better error message 2025-11-25 22:41:49 +01:00
sd hw/aspeed/{xdma, rtc, sdhci}: Fix endianness to DEVICE_LITTLE_ENDIAN 2025-11-25 22:45:30 +01:00
sensor qemu: Declare all load/store helper in 'qemu/bswap.h' 2025-07-15 02:56:39 -04:00
sh4 hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
smbios hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
sparc hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
sparc64 hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
ssi hw/ssi/aspeed_smc: Fix incorrect FMC_WDT2 register read on AST1030 2025-08-04 09:07:38 +02:00
timer hw/pcspk: use explicitly the required PIT types 2025-10-22 08:55:28 +02:00
tpm qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
tricore qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
uefi hw/uefi/ovmf-log: Fix memory leak in hmp_info_firmware_log 2025-10-23 13:27:27 +02:00
ufs hw/ufs/lu: skip automatic zero-init of large array 2025-06-12 13:40:16 -04:00
usb hw/usb: Convert to qemu_create() for a better error message 2025-11-25 22:41:47 +01:00
vfio Fix the typo of vfio-pci device's enable-migration option 2025-11-21 15:53:06 +03:00
vfio-user vfio-user: recycle msg on failure 2025-12-03 15:07:47 +01:00
virtio vhost: Always initialize cached vring data 2025-12-09 20:48:39 +01:00
vmapple hw/gpio/pl061: Declare pullups/pulldowns as 8-bit types 2025-10-31 16:26:44 +00:00
watchdog wdt_i6300esb: fix incorrect mask for interrupt type 2025-10-05 09:46:06 +03:00
xen hw/xen: Build only once 2025-10-30 14:48:26 +01:00
xenpv hw/boards: Do not create unusable default if=sd drives 2025-02-16 14:25:08 +01:00
xtensa hw/core/loader: capture Error from load_image_targphys 2025-10-28 08:19:18 +01:00
Kconfig vfio-user: add vfio-user class and container 2025-06-26 08:55:38 +02:00
meson.build hw/meson: enter target hw first 2025-09-02 17:57:05 +02:00