From b7facb30f853ccb69ace851d4fa3b2dcb7dabe58 Mon Sep 17 00:00:00 2001 From: Changpeng Liu Date: Fri, 14 Oct 2022 10:19:52 +0800 Subject: [PATCH] lib/vhost_scsi: don't start device before a valid I/O queue is enabled Change-Id: I407c62df2117069ad1d8f6aba18cf316a3cf47bf Signed-off-by: Changpeng Liu Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14980 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/vhost/vhost_scsi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/vhost/vhost_scsi.c b/lib/vhost/vhost_scsi.c index c41555989..8ab71d557 100644 --- a/lib/vhost/vhost_scsi.c +++ b/lib/vhost/vhost_scsi.c @@ -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);