bus/pci: fix leak on VFIO mapping error
Currently, only the 'vfio_dev_fd' is closed in failure path, so
some resources are not released(such as 'vfio_group_fd'). The
rte_vfio_release_device() should be used to avoid this problem.
Fixes: 33604c3135
("vfio: refactor PCI BAR mapping")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
This commit is contained in:
parent
e34a43a672
commit
2a089d2d52
@ -838,7 +838,8 @@ pci_vfio_map_resource_primary(struct rte_pci_device *dev)
|
|||||||
err_vfio_res:
|
err_vfio_res:
|
||||||
rte_free(vfio_res);
|
rte_free(vfio_res);
|
||||||
err_vfio_dev_fd:
|
err_vfio_dev_fd:
|
||||||
close(vfio_dev_fd);
|
rte_vfio_release_device(rte_pci_get_sysfs_path(),
|
||||||
|
pci_addr, vfio_dev_fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -906,7 +907,8 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
err_vfio_dev_fd:
|
err_vfio_dev_fd:
|
||||||
close(vfio_dev_fd);
|
rte_vfio_release_device(rte_pci_get_sysfs_path(),
|
||||||
|
pci_addr, vfio_dev_fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user