net/mlx4: fix leak when configured repeatedly
authorYunjian Wang <wangyunjian@huawei.com>
Thu, 13 May 2021 03:38:56 +0000 (11:38 +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: 97d37d2c1f6b ("net/mlx4: 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/mlx4/mlx4.c

index 7cd35cd..c522157 100644 (file)
@@ -201,6 +201,7 @@ mlx4_proc_priv_init(struct rte_eth_dev *dev)
        struct mlx4_proc_priv *ppriv;
        size_t ppriv_size;
 
+       mlx4_proc_priv_uninit(dev);
        /*
         * UAR register table follows the process private structure. BlueFlame
         * registers for Tx queues are stored in the table.