Revision 73d604a4bc5641d38680dbac3e90e368db9549a3 authored by Kevin Wolf on 15 March 2024, 15:59:49 UTC, committed by Michael Tokarev on 27 March 2024, 06:39:28 UTC
VDUSE requires that virtqueues are first enabled before the DRIVER_OK
status flag is set; with the current API of the kernel module, it is
impossible to enable the opposite order in our block export code because
userspace is not notified when a virtqueue is enabled.

This requirement also mathces the normal initialisation order as done by
the generic vhost code in QEMU. However, commit 6c482547 accidentally
changed the order for vdpa-dev and broke access to VDUSE devices with
this.

This changes vdpa-dev to use the normal order again and use the standard
vhost callback .vhost_set_vring_enable for this. VDUSE devices can be
used with vdpa-dev again after this fix.

vhost_net intentionally avoided enabling the vrings for vdpa and does
this manually later while it does enable them for other vhost backends.
Reflect this in the vhost_net code and return early for vdpa, so that
the behaviour doesn't change for this device.

Cc: qemu-stable@nongnu.org
Fixes: 6c4825476a43 ('vdpa: move vhost_vdpa_set_vring_ready to the caller')
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20240315155949.86066-1-kwolf@redhat.com>
Reviewed-by: Eugenio Pérez <eperezma@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit 2c66de61f88dc9620a32239f7dd61524a57f66b0)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
1 parent 784ebe5
History
File Mode Size
descriptors
keymaps
optionrom
s390-ccw
vof
QEMU,cgthree.bin -rw-r--r-- 850 bytes
QEMU,tcx.bin -rw-r--r-- 1.4 KB
README -rw-r--r-- 4.0 KB
bamboo.dtb -rw-r--r-- 3.1 KB
bamboo.dts -rw-r--r-- 4.5 KB
bios-256k.bin -rw-r--r-- 256.0 KB
bios-microvm.bin -rw-r--r-- 128.0 KB
bios.bin -rw-r--r-- 128.0 KB
canyonlands.dtb -rw-r--r-- 9.5 KB
canyonlands.dts -rw-r--r-- 15.4 KB
edk2-aarch64-code.fd.bz2 -rw-r--r-- 1.5 MB
edk2-arm-code.fd.bz2 -rw-r--r-- 1.5 MB
edk2-arm-vars.fd.bz2 -rw-r--r-- 263 bytes
edk2-i386-code.fd.bz2 -rw-r--r-- 1.7 MB
edk2-i386-secure-code.fd.bz2 -rw-r--r-- 2.0 MB
edk2-i386-vars.fd.bz2 -rw-r--r-- 190 bytes
edk2-licenses.txt -rw-r--r-- 41.9 KB
edk2-riscv-code.fd.bz2 -rw-r--r-- 1.3 MB
edk2-riscv-vars.fd.bz2 -rw-r--r-- 235 bytes
edk2-x86_64-code.fd.bz2 -rw-r--r-- 1.8 MB
edk2-x86_64-microvm.fd.bz2 -rw-r--r-- 1.7 MB
edk2-x86_64-secure-code.fd.bz2 -rw-r--r-- 2.1 MB
efi-e1000.rom -rw-r--r-- 155.5 KB
efi-e1000e.rom -rw-r--r-- 155.5 KB
efi-eepro100.rom -rw-r--r-- 155.5 KB
efi-ne2k_pci.rom -rw-r--r-- 154.0 KB
efi-pcnet.rom -rw-r--r-- 154.0 KB
efi-rtl8139.rom -rw-r--r-- 157.0 KB
efi-virtio.rom -rw-r--r-- 157.0 KB
efi-vmxnet3.rom -rw-r--r-- 153.0 KB
hppa-firmware.img -rw-r--r-- 159.5 KB
kvmvapic.bin -rw-r--r-- 9.0 KB
linuxboot.bin -rw-r--r-- 1.0 KB
linuxboot_dma.bin -rw-r--r-- 1.5 KB
meson.build -rw-r--r-- 2.4 KB
multiboot.bin -rw-r--r-- 1.0 KB
multiboot_dma.bin -rw-r--r-- 1.0 KB
npcm7xx_bootrom.bin -rw-r--r-- 768 bytes
openbios-ppc -rw-r--r-- 661.3 KB
openbios-sparc32 -rw-r--r-- 373.1 KB
openbios-sparc64 -rw-r--r-- 1.5 MB
opensbi-riscv32-generic-fw_dynamic.bin -rw-r--r-- 132.2 KB
opensbi-riscv64-generic-fw_dynamic.bin -rw-r--r-- 135.1 KB
palcode-clipper -rw-r--r-- 150.1 KB
petalogix-ml605.dtb -rw-r--r-- 9.7 KB
petalogix-ml605.dts -rw-r--r-- 10.1 KB
petalogix-s3adsp1800.dtb -rw-r--r-- 8.0 KB
petalogix-s3adsp1800.dts -rw-r--r-- 7.9 KB
pvh.bin -rw-r--r-- 1.5 KB
pxe-e1000.rom -rw-r--r-- 65.5 KB
pxe-eepro100.rom -rw-r--r-- 60.0 KB
pxe-ne2k_pci.rom -rw-r--r-- 60.0 KB
pxe-pcnet.rom -rw-r--r-- 60.0 KB
pxe-rtl8139.rom -rw-r--r-- 60.0 KB
pxe-virtio.rom -rw-r--r-- 59.0 KB
qboot.rom -rwxr-xr-x 64.0 KB
qemu-nsis.bmp -rw-r--r-- 150.9 KB
qemu-nsis.ico -rw-r--r-- 4.7 KB
qemu.rsrc -rw-r--r-- 131.5 KB
qemu_logo.svg -rw-r--r-- 31.7 KB
qemu_vga.ndrv -rw-r--r-- 18.3 KB
s390-ccw.img -rw-r--r-- 41.6 KB
s390-netboot.img -rw-r--r-- 65.7 KB
skiboot.lid -rw-r--r-- 2.4 MB
slof.bin -rw-r--r-- 971.7 KB
u-boot-sam460-20100605.bin -rw-r--r-- 512.0 KB
u-boot.e500 -rw-r--r-- 411.8 KB
vgabios-ati.bin -rw-r--r-- 38.5 KB
vgabios-bochs-display.bin -rw-r--r-- 28.0 KB
vgabios-cirrus.bin -rw-r--r-- 38.0 KB
vgabios-qxl.bin -rw-r--r-- 38.5 KB
vgabios-ramfb.bin -rw-r--r-- 28.0 KB
vgabios-stdvga.bin -rw-r--r-- 38.5 KB
vgabios-virtio.bin -rw-r--r-- 38.5 KB
vgabios-vmware.bin -rw-r--r-- 38.5 KB
vgabios.bin -rw-r--r-- 38.0 KB
vof-nvram.bin -rw-r--r-- 16.0 KB
vof.bin -rwxr-xr-x 3.4 KB

README

back to top