net/mlx5: fix secondary process resource leakage
authorOphir Munk <ophirmu@mellanox.com>
Tue, 31 Jul 2018 22:38:04 +0000 (22:38 +0000)
committerShahaf Shuler <shahafs@mellanox.com>
Thu, 2 Aug 2018 11:15:27 +0000 (13:15 +0200)
When running testpmd with an mlx5 device and then executing at testpmd
prompt in a raw: "port start all" followed by "port stop all"
a new file named /var/tmp/net_mlx5_<socket num> is created as a result
of creating a new unix domain socket (used for communication between
the primary and secondary processes).
When the new unix socket file is created the old unix socket file should
have been removed. This commit fixes it by closing the old unix socket
just before creating the new one in function mlx5_socket_init()

Fixes: f8b9a3bad467 ("net/mlx5: install a socket to exchange a file descriptor")
Cc: stable@dpdk.org
Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
drivers/net/mlx5/mlx5_socket.c

index 99297d5..a3a5229 100644 (file)
@@ -35,6 +35,12 @@ mlx5_socket_init(struct rte_eth_dev *dev)
        int ret;
        int flags;
 
+       /*
+        * Close the last socket that was used to communicate
+        * with the secondary process
+        */
+       if (priv->primary_socket)
+               mlx5_socket_uninit(dev);
        /*
         * Initialise the socket to communicate with the secondary
         * process.