From: Kalesh AP Date: Thu, 16 Jan 2020 13:04:52 +0000 (+0530) Subject: net/bnxt: fix a memory leak in port stop X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=d59992361ca5646f007d32186ea352cc1b47fac9;p=dpdk.git net/bnxt: fix a memory leak in port stop The memory for mark table is allocated during port start. But the allocated memory is freed only during port close or driver unload which in turn causes a memory leakage on each port start/stop. Fixed it by moving the memory free to port stop. Fixes: 94eb699bc82e ("net/bnxt: support flow mark action") Signed-off-by: Kalesh AP Reviewed-by: Ajit Khaparde --- diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 436ecbb84d..26614186f5 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -970,7 +970,10 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev) bnxt_int_handler(eth_dev); bnxt_shutdown_nic(bp); bnxt_hwrm_if_change(bp, 0); - memset(bp->mark_table, 0, BNXT_MARK_TABLE_SZ); + + rte_free(bp->mark_table); + bp->mark_table = NULL; + bp->flags &= ~BNXT_FLAG_RX_VECTOR_PKT_MODE; bp->dev_stopped = 1; bp->rx_cosq_cnt = 0; @@ -992,9 +995,6 @@ static void bnxt_dev_close_op(struct rte_eth_dev *eth_dev) bp->grp_info = NULL; } - rte_free(bp->mark_table); - bp->mark_table = NULL; - bnxt_dev_uninit(eth_dev); }