vhost-user-blk: Check that num-queues is supported by backend
commitc90bd505a3e8210c23d69fecab9ee6f56ec4a161
authorKevin Wolf <kwolf@redhat.com>
Thu, 29 Apr 2021 17:13:16 +0000 (29 19:13 +0200)
committerKevin Wolf <kwolf@redhat.com>
Tue, 18 May 2021 10:57:39 +0000 (18 12:57 +0200)
tree4047a26f0dd7de9f3c6ea510790af7b20f8b65ea
parent04ceb61a4075fadbf374ef89662c41999da83489
vhost-user-blk: Check that num-queues is supported by backend

Creating a device with a number of queues that isn't supported by the
backend is pointless, the device won't work properly and the error
messages are rather confusing.

Just fail to create the device if num-queues is higher than what the
backend supports.

Since the relationship between num-queues and the number of virtqueues
depends on the specific device, this is an additional value that needs
to be initialised by the device. For convenience, allow leaving it 0 if
the check should be skipped. This makes sense for vhost-user-net where
separate vhost devices are used for the queues and custom initialisation
code is needed to perform the check.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1935031
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <20210429171316.162022-7-kwolf@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/block/vhost-user-blk.c
hw/virtio/vhost-user.c
include/hw/virtio/vhost.h