diff --git a/lib/vhost/vhost_nvme.c b/lib/vhost/vhost_nvme.c index 1701035ea..014be113c 100644 --- a/lib/vhost/vhost_nvme.c +++ b/lib/vhost/vhost_nvme.c @@ -150,10 +150,6 @@ static const struct spdk_vhost_dev_backend spdk_vhost_nvme_device_backend; static struct spdk_vhost_nvme_dev * to_nvme_dev(struct spdk_vhost_dev *vdev) { - if (vdev == NULL) { - return NULL; - } - if (vdev->backend != &spdk_vhost_nvme_device_backend) { SPDK_ERRLOG("%s: not a vhost-nvme device\n", vdev->name); return NULL; @@ -886,6 +882,10 @@ spdk_vhost_nvme_start_device(struct spdk_vhost_dev *vdev, void *event_ctx) struct spdk_vhost_nvme_ns *ns_dev; uint32_t i; + if (nvme == NULL) { + return -1; + } + spdk_vhost_dev_mem_register(vdev); nvme->mem = vdev->mem; @@ -980,6 +980,10 @@ spdk_vhost_nvme_stop_device(struct spdk_vhost_dev *vdev, void *event_ctx) struct spdk_vhost_nvme_dev *nvme = to_nvme_dev(vdev); struct spdk_vhost_dev_destroy_ctx *destroy_ctx; + if (nvme == NULL) { + return -1; + } + free_task_pool(nvme); SPDK_NOTICELOG("Stopping Device %u, Path %s\n", vdev->vid, vdev->path); @@ -1010,6 +1014,10 @@ spdk_vhost_nvme_dump_config_json(struct spdk_vhost_dev *vdev, struct spdk_json_w struct spdk_bdev *bdev; uint32_t i; + if (nvme == NULL) { + return; + } + spdk_json_write_name(w, "namespaces"); spdk_json_write_object_begin(w); @@ -1199,6 +1207,10 @@ spdk_vhost_nvme_dev_add_ns(struct spdk_vhost_dev *vdev, const char *bdev_name) struct spdk_bdev *bdev; int rc = -1; + if (nvme == NULL) { + return -1; + } + if (nvme->num_ns == MAX_NAMESPACE) { SPDK_ERRLOG("Can't support %d Namespaces\n", nvme->num_ns); return -1;