From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5BC0CA0519; Sun, 21 Jun 2020 11:08:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1AE521C00D; Sun, 21 Jun 2020 11:08:00 +0200 (CEST) Received: from qq.com (out203-205-221-210.mail.qq.com [203.205.221.210]) by dpdk.org (Postfix) with ESMTP id 431611C002; Sun, 21 Jun 2020 11:07:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1592730471; bh=4luaFmkOa07rmAkunK9nuHuHGLNQj7v8iyvi3ARjtUU=; h=From:To:Cc:Subject:Date; b=m4QtUZGT63fu0CNnAikk42oV5oh+NkwEvMNlFB/f61VTmPghLFitivMUBaAO45qqO TDK+YVVPQMrPajcFVSFZxTLoiJjSpaMKhLi3EYz4+vFMdUg5G3JPG7ySZ3IR2SMOJF mTzM6uOoNVMyW1kPeRBFCMyqjUeQEXUrZ+GwDflI= Received: from localhost.localdomain ([117.147.70.170]) by newxmesmtplogicsvrszc8.qq.com (NewEsmtp) with SMTP id 1F10CCF0; Sun, 21 Jun 2020 17:07:49 +0800 X-QQ-mid: xmsmtpt1592730469tre6qf4w4 Messag-ID: X-QQ-XMAILINFO: NHg2VBZYZpKy7yY5BIXleh0UQDV16krytXU0aRJb1GAGmfG06flrpv6lLBbEm3 AaQQoV9Y3LcfWcejuYbGSo1XVK0k5WRUHj5+sT87xCTKAQz0PkczUS9qHucE2/SWA/Et/qM6vrtu uanSVRGmgy/RlvF34JNZ5iuM+ry11URHckCO7DJRFV7+tkilQq27yH7lZ/6/7QCnoSiqUaHO2LPW 6w4L+iLaDTNGy1+gmv5wDUcEvEBLVmHI4dg07JXCSEAV9E/r+22x+26vuhiVTrfpJ8H9Ejs4d3pi aAac22HqXL4jps6dM467+z6jwyKLn03+zIjbWtnZ5Hh7jVjOVJZMQHJbUzDFlDm5/15QCEW+2t+4 RQJ0vXwoJEJG8V+qPP7F9UpVyUVgDfr5VsbRfcxsYKCuZP66TwAdV0j7C8mrbhtLYaV3jUOYEiMq 6RMMgdOYFxJZRqqGnVzbCPpVCunJkVyRrKVPwP/4kW5+hyAstAet5GptvGQ2gqbubE7uzHlr8t2I 0I3ue4q4zjQJUgbETheJxxNCeoK+ZZRpkeoI6tAO8o0/OHg9M8rP7iZ0/O61BSwAnps1NMtkJLcF i4s7bpbkRqHhQCOvnHX0R9i7AMKBPCKhOXVrzQQaRP41u+KqWFTrMlWQ0BckdvwDatb2xxT54+LW DFIRmMkG4+v59N/YgXtBobOF1J6AbourfxwBe3bbc4fMkrldXAiR1a8n/XdiQZYD/W2fm7Uw0DkM Pp From: Yunjian Wang To: dev@dpdk.org, anatoly.burakov@intel.com Cc: Yunjian Wang , stable@dpdk.org Date: Sun, 21 Jun 2020 17:07:37 +0800 X-OQ-MSGID: X-Mailer: git-send-email 2.20.1.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH] vfio: fix resource leak when mapping fails X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Message-Id: <20200621090800.1AE521C00D@dpdk.org> 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 --- drivers/bus/pci/linux/pci_vfio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c index 64cd84a68..c87373b90 100644 --- a/drivers/bus/pci/linux/pci_vfio.c +++ b/drivers/bus/pci/linux/pci_vfio.c @@ -789,7 +789,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; } @@ -857,7 +858,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; } -- 2.18.1