Hi Maxime, Near end of this function, if vhost_check_queue_inflights_packed() and vhost_check_queue_inflights_split() return with error, is the fd expected to be closed by closing vq?
>-----Original Message----- >From: dev <dev-boun...@dpdk.org> On Behalf Of Maxime Coquelin >Sent: Monday, November 9, 2020 8:17 PM >To: dev@dpdk.org; xuan.d...@intel.com; step...@networkplumber.org; >NBU-Contact-Thomas Monjalon <tho...@monjalon.net>; sta...@dpdk.org; >chenbo....@intel.com >Cc: Maxime Coquelin <maxime.coque...@redhat.com> >Subject: [dpdk-dev] [PATCH v3 3/3] vhost: fix fd leak in kick setup > >This patch fixes a file descriptor leak which happens in the error path of >vhost_user_set_vring_kick(). > >Fixes: 4796ad63ba1f ("examples/vhost: import userspace vhost application") >Cc: sta...@dpdk.org > >Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com> >Reviewed-by: Chenbo Xia <chenbo....@intel.com> >--- > lib/librte_vhost/vhost_user.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > >diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c >index >94b066f0b9..f3b2adabac 100644 >--- a/lib/librte_vhost/vhost_user.c >+++ b/lib/librte_vhost/vhost_user.c >@@ -1855,8 +1855,12 @@ vhost_user_set_vring_kick(struct virtio_net **pdev, >struct VhostUserMsg *msg, > > /* Interpret ring addresses only when ring is started. */ > dev = translate_ring_addresses(dev, file.index); >- if (!dev) >+ if (!dev) { >+ if (file.fd != VIRTIO_INVALID_EVENTFD) >+ close(file.fd); >+ > return RTE_VHOST_MSG_RESULT_ERR; >+ } > > *pdev = dev; > >-- >2.26.2