net/mlx5: fix leak when configured repeatedly
authorYunjian Wang <wangyunjian@huawei.com>
Thu, 13 May 2021 03:39:54 +0000 (11:39 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Sun, 16 May 2021 12:58:23 +0000 (14:58 +0200)
Currently, configuring a mlx device, it will allocate its
own process private in mlx5_proc_priv_init() and only frees
it when closing the device. This will lead to a memory leak,
when a device is configured repeatedly.

For example:
for(...)
do
    rte_eth_dev_configure
    rte_eth_rx_queue_setup
    rte_eth_tx_queue_setup
    rte_eth_dev_start
    rte_eth_dev_stop
done

Fixes: 120dc4a7dcd3 ("net/mlx5: remove device register remap")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/mlx5.c

index 35f91e9..cf1815c 100644 (file)
@@ -1455,6 +1455,7 @@ mlx5_proc_priv_init(struct rte_eth_dev *dev)
        struct mlx5_proc_priv *ppriv;
        size_t ppriv_size;
 
+       mlx5_proc_priv_uninit(dev);
        /*
         * UAR register table follows the process private structure. BlueFlame
         * registers for Tx queues are stored in the table.