The -1 assumes that all devices with no cvq have an spare vq allocated
for them, but with no offer of VIRTIO_NET_F_CTRL_VQ. This is an invalid
device by the standard, so just stick to the right number of device
models.
This is not a problem to vhost-net, but it is to vhost-vdpa, which
device model trust to reach the last index to finish starting the
device.
Tested with vp_vdpa with host's vhost=on and vhost=off.
v3:
* Recover cvq devices.
* Rename last_index to last_vq_index
v2:
* Delete all the conditional code instead of ROUND_DOWN in a
deinitely too-bit-tricky way.
Eugenio Pérez (2):
vhost: Rename last_index to last_vq_index
vhost: Fix last vq queue index of devices with no cvq
include/hw/virtio/vhost.h | 2 +-
hw/net/vhost_net.c | 8 ++++----
hw/virtio/vhost-vdpa.c | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
--
2.27.0