lib/nvme/vfio: destruct ctrlr in failed cases

Change-Id: Ie7d7ab25055c26ea1c2ae4997bf7197a170de989
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15005
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
GangCao 2022-10-17 01:56:06 -04:00 committed by Tomasz Zawadzki
parent f72f154719
commit f20b99bbb3

View File

@ -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, ret = spdk_vfio_user_pci_bar_access(vctrlr->dev, VFIO_PCI_CONFIG_REGION_INDEX, 4, 2,
&cmd_reg, false); &cmd_reg, false);
if (ret != 0) { if (ret != 0) {
nvme_ctrlr_destruct(&pctrlr->ctrlr);
SPDK_ERRLOG("Read PCI CMD REG failed\n"); SPDK_ERRLOG("Read PCI CMD REG failed\n");
goto exit; 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, ret = spdk_vfio_user_pci_bar_access(vctrlr->dev, VFIO_PCI_CONFIG_REGION_INDEX, 4, 2,
&cmd_reg, true); &cmd_reg, true);
if (ret != 0) { if (ret != 0) {
nvme_ctrlr_destruct(&pctrlr->ctrlr);
SPDK_ERRLOG("Write PCI CMD REG failed\n"); SPDK_ERRLOG("Write PCI CMD REG failed\n");
goto exit; goto exit;
} }
if (nvme_ctrlr_get_cap(&pctrlr->ctrlr, &cap)) { if (nvme_ctrlr_get_cap(&pctrlr->ctrlr, &cap)) {
nvme_ctrlr_destruct(&pctrlr->ctrlr);
SPDK_ERRLOG("get_cap() failed\n"); SPDK_ERRLOG("get_cap() failed\n");
goto exit; goto exit;
} }