net/virtio: fix missing listen FD initialization

Message ID 20210201093317.6761-1-maxime.coquelin@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/virtio: fix missing listen FD initialization |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing warning Testing issues

Commit Message

Maxime Coquelin Feb. 1, 2021, 9:33 a.m. UTC
  When running in client mode, the listen file descriptor
is not initialized, and so has value 0. At destroy time,
the listen FD is closed if its value is greater than or
equal to zero, which causes STDIN to be closed.

Fixes: 949735312f5e ("net/virtio: move vhost-user specifics to its backend")
Bugzilla ID: 630

Reported-by: Jun W Zhou <junx.w.zhou@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_user/vhost_user.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

David Marchand Feb. 1, 2021, 9:52 a.m. UTC | #1
On Mon, Feb 1, 2021 at 10:33 AM Maxime Coquelin
<maxime.coquelin@redhat.com> wrote:
>
> When running in client mode, the listen file descriptor
> is not initialized, and so has value 0. At destroy time,
> the listen FD is closed if its value is greater than or
> equal to zero, which causes STDIN to be closed.
>
> Fixes: 949735312f5e ("net/virtio: move vhost-user specifics to its backend")
> Bugzilla ID: 630

We put the Bugzilla ID: tag before Fixes:.

>
> Reported-by: Jun W Zhou <junx.w.zhou@intel.com>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
>  drivers/net/virtio/virtio_user/vhost_user.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/virtio/virtio_user/vhost_user.c b/drivers/net/virtio/virtio_user/vhost_user.c
> index ec2c53c8fb..f8569f6e6f 100644
> --- a/drivers/net/virtio/virtio_user/vhost_user.c
> +++ b/drivers/net/virtio/virtio_user/vhost_user.c
> @@ -831,6 +831,7 @@ vhost_user_setup(struct virtio_user_dev *dev)
>         dev->backend_data = data;
>
>         data->vhostfd = -1;
> +       data->listenfd = -1;
>
>         fd = socket(AF_UNIX, SOCK_STREAM, 0);
>         if (fd < 0) {
> --
> 2.29.2
>

Reviewed-by: David Marchand <david.marchand@redhat.com>
  
Zhou, JunX W Feb. 2, 2021, 9:26 a.m. UTC | #2
Tested-by: Zhou, Jun <junx.w.zhou@intel.com> 

-----Original Message-----
From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com] 
Sent: Monday, February 1, 2021 5:33 PM
To: dev@dpdk.org; Wang, Yinan <yinan.wang@intel.com>; Xia, Chenbo <chenbo.xia@intel.com>; amorenoz@redhat.com; david.marchand@redhat.com; Ling, WeiX <weix.ling@intel.com>; Jiang, YuX <yux.jiang@intel.com>
Cc: Maxime Coquelin <maxime.coquelin@redhat.com>; Zhou, JunX W <junx.w.zhou@intel.com>
Subject: [PATCH] net/virtio: fix missing listen FD initialization

When running in client mode, the listen file descriptor is not initialized, and so has value 0. At destroy time, the listen FD is closed if its value is greater than or equal to zero, which causes STDIN to be closed.

Fixes: 949735312f5e ("net/virtio: move vhost-user specifics to its backend") Bugzilla ID: 630

Reported-by: Jun W Zhou <junx.w.zhou@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_user/vhost_user.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/virtio/virtio_user/vhost_user.c b/drivers/net/virtio/virtio_user/vhost_user.c
index ec2c53c8fb..f8569f6e6f 100644
--- a/drivers/net/virtio/virtio_user/vhost_user.c
+++ b/drivers/net/virtio/virtio_user/vhost_user.c
@@ -831,6 +831,7 @@ vhost_user_setup(struct virtio_user_dev *dev)
 	dev->backend_data = data;
 
 	data->vhostfd = -1;
+	data->listenfd = -1;
 
 	fd = socket(AF_UNIX, SOCK_STREAM, 0);
 	if (fd < 0) {
--
2.29.2
  
Ferruh Yigit Feb. 2, 2021, 11:11 p.m. UTC | #3
On 2/2/2021 9:26 AM, Zhou, JunX W wrote:

> -----Original Message-----
> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com]
> Sent: Monday, February 1, 2021 5:33 PM
> To: dev@dpdk.org; Wang, Yinan <yinan.wang@intel.com>; Xia, Chenbo <chenbo.xia@intel.com>; amorenoz@redhat.com; david.marchand@redhat.com; Ling, WeiX <weix.ling@intel.com>; Jiang, YuX <yux.jiang@intel.com>
> Cc: Maxime Coquelin <maxime.coquelin@redhat.com>; Zhou, JunX W <junx.w.zhou@intel.com>
> Subject: [PATCH] net/virtio: fix missing listen FD initialization
> 
> When running in client mode, the listen file descriptor is not initialized, and so has value 0. At destroy time, the listen FD is closed if its value is greater than or equal to zero, which causes STDIN to be closed.
> 
 > Bugzilla ID: 630
> Fixes: 949735312f5e ("net/virtio: move vhost-user specifics to its backend") 
> 
> Reported-by: Jun W Zhou <junx.w.zhou@intel.com>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> 
 > Reviewed-by: David Marchand <david.marchand@redhat.com>
 >
 > Tested-by: Zhou, Jun <junx.w.zhou@intel.com>
 >

Applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/drivers/net/virtio/virtio_user/vhost_user.c b/drivers/net/virtio/virtio_user/vhost_user.c
index ec2c53c8fb..f8569f6e6f 100644
--- a/drivers/net/virtio/virtio_user/vhost_user.c
+++ b/drivers/net/virtio/virtio_user/vhost_user.c
@@ -831,6 +831,7 @@  vhost_user_setup(struct virtio_user_dev *dev)
 	dev->backend_data = data;
 
 	data->vhostfd = -1;
+	data->listenfd = -1;
 
 	fd = socket(AF_UNIX, SOCK_STREAM, 0);
 	if (fd < 0) {