Commit f20b99bb authored by GangCao's avatar GangCao Committed by Tomasz Zawadzki
Browse files

lib/nvme/vfio: destruct ctrlr in failed cases



Change-Id: Ie7d7ab25055c26ea1c2ae4997bf7197a170de989
Signed-off-by: default avatarGangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15005


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent f72f1547
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -188,6 +188,7 @@ static struct spdk_nvme_ctrlr *
	ret = spdk_vfio_user_pci_bar_access(vctrlr->dev, VFIO_PCI_CONFIG_REGION_INDEX, 4, 2,
					    &cmd_reg, false);
	if (ret != 0) {
		nvme_ctrlr_destruct(&pctrlr->ctrlr);
		SPDK_ERRLOG("Read PCI CMD REG failed\n");
		goto exit;
	}
@@ -195,11 +196,13 @@ static struct spdk_nvme_ctrlr *
	ret = spdk_vfio_user_pci_bar_access(vctrlr->dev, VFIO_PCI_CONFIG_REGION_INDEX, 4, 2,
					    &cmd_reg, true);
	if (ret != 0) {
		nvme_ctrlr_destruct(&pctrlr->ctrlr);
		SPDK_ERRLOG("Write PCI CMD REG failed\n");
		goto exit;
	}

	if (nvme_ctrlr_get_cap(&pctrlr->ctrlr, &cap)) {
		nvme_ctrlr_destruct(&pctrlr->ctrlr);
		SPDK_ERRLOG("get_cap() failed\n");
		goto exit;
	}