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
tpm
Kconfig -rw-r--r-- 19 bytes
confidential-guest-support.c -rw-r--r-- 751 bytes
cryptodev-builtin.c -rw-r--r-- 18.8 KB
cryptodev-hmp-cmds.c -rw-r--r-- 1.6 KB
cryptodev-lkcf.c -rw-r--r-- 19.7 KB
cryptodev-vhost-user.c -rw-r--r-- 11.8 KB
cryptodev-vhost.c -rw-r--r-- 8.8 KB
cryptodev.c -rw-r--r-- 20.2 KB
dbus-vmstate.c -rw-r--r-- 14.5 KB
dbus-vmstate1.xml -rw-r--r-- 1.4 KB
hostmem-epc.c -rw-r--r-- 2.0 KB
hostmem-file.c -rw-r--r-- 9.6 KB
hostmem-memfd.c -rw-r--r-- 4.8 KB
hostmem-ram.c -rw-r--r-- 1.4 KB
hostmem.c -rw-r--r-- 17.8 KB
meson.build -rw-r--r-- 942 bytes
rng-builtin.c -rw-r--r-- 1.8 KB
rng-egd.c -rw-r--r-- 4.1 KB
rng-random.c -rw-r--r-- 3.7 KB
rng.c -rw-r--r-- 3.0 KB
trace-events -rw-r--r-- 248 bytes
trace.h -rw-r--r-- 34 bytes
vhost-user.c -rw-r--r-- 4.6 KB

back to top