lib/vhost_scsi: don't start device before a valid I/O queue is enabled

Change-Id: I407c62df2117069ad1d8f6aba18cf316a3cf47bf
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14980
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Changpeng Liu 2022-10-14 10:19:52 +08:00 committed by Tomasz Zawadzki
parent 9cdd1a8a2c
commit b7facb30f8

View File

@ -1368,6 +1368,10 @@ vhost_scsi_start(struct spdk_vhost_dev *vdev,
svsession->svdev = svdev;
/* validate all I/O queues are in a contiguous index range */
if (vsession->max_queues < VIRTIO_SCSI_REQUESTQ + 1) {
SPDK_INFOLOG(vhost, "%s: max_queues %u, no I/O queues\n", vsession->name, vsession->max_queues);
return -1;
}
for (i = VIRTIO_SCSI_REQUESTQ; i < vsession->max_queues; i++) {
if (vsession->virtqueue[i].vring.desc == NULL) {
SPDK_ERRLOG("%s: queue %"PRIu32" is empty\n", vsession->name, i);