[v2,RESEND] vfio: fix resource leak when mapping fails
Checks
Commit Message
From: Yunjian Wang <wangyunjian@huawei.com>
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: 33604c31354a ("vfio: refactor PCI BAR mapping")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
---
v2:
Update email address
---
drivers/bus/pci/linux/pci_vfio.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Comments
On 11-Sep-20 12:08 PM, wangyunjian wrote:
> From: Yunjian Wang <wangyunjian@huawei.com>
>
> 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: 33604c31354a ("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>
On Fri, Sep 11, 2020 at 1:08 PM wangyunjian <wangyunjian@huawei.com> wrote:
>
> From: Yunjian Wang <wangyunjian@huawei.com>
>
> 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: 33604c31354a ("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>
Applied, thanks.
@@ -826,7 +826,8 @@ pci_vfio_map_resource_primary(struct rte_pci_device *dev)
err_vfio_res:
rte_free(vfio_res);
err_vfio_dev_fd:
- close(vfio_dev_fd);
+ rte_vfio_release_device(rte_pci_get_sysfs_path(),
+ pci_addr, vfio_dev_fd);
return -1;
}
@@ -894,7 +895,8 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
return 0;
err_vfio_dev_fd:
- close(vfio_dev_fd);
+ rte_vfio_release_device(rte_pci_get_sysfs_path(),
+ pci_addr, vfio_dev_fd);
return -1;
}