testpmd: fix memory leak in iterator

Message ID 20191120232628.29737-1-stephen@networkplumber.org (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series testpmd: fix memory leak in iterator |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-compilation success Compile Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation fail Compilation issues

Commit Message

Stephen Hemminger Nov. 20, 2019, 11:26 p.m. UTC
  The RTE_FOREACH_MATCHING_DEV iterator requires that
if a break is done before the end of the loop,
the function rte_eth_iterator_cleanup() must be called.

Fixes: 55e51c962432 ("app/testpmd: add device related commands")
Cc: ndabilpuram@marvell.com
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/test-pmd/testpmd.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Iremonger, Bernard Nov. 21, 2019, 11:43 a.m. UTC | #1
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Stephen Hemminger
> Sent: Wednesday, November 20, 2019 11:26 PM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <stephen@networkplumber.org>;
> ndabilpuram@marvell.com; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] testpmd: fix memory leak in iterator
> 
> The RTE_FOREACH_MATCHING_DEV iterator requires that if a break is done
> before the end of the loop, the function rte_eth_iterator_cleanup() must be
> called.
> 
> Fixes: 55e51c962432 ("app/testpmd: add device related commands")
> Cc: ndabilpuram@marvell.com
> Cc: stable@dpdk.org
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>


./devtools/check-git-log.sh -1
Wrong headline label:
        testpmd: fix memory leak in iterator

Headline label should be app/testpmd

Otherwise

Acked-by: Bernard Iremonger <bernard.iremonger@intel.com
  
Ferruh Yigit Nov. 21, 2019, 1:58 p.m. UTC | #2
On 11/21/2019 11:43 AM, Iremonger, Bernard wrote:
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Stephen Hemminger
>> Sent: Wednesday, November 20, 2019 11:26 PM
>> To: dev@dpdk.org
>> Cc: Stephen Hemminger <stephen@networkplumber.org>;
>> ndabilpuram@marvell.com; stable@dpdk.org
>> Subject: [dpdk-dev] [PATCH] testpmd: fix memory leak in iterator
>>
>> The RTE_FOREACH_MATCHING_DEV iterator requires that if a break is done
>> before the end of the loop, the function rte_eth_iterator_cleanup() must be
>> called.
>>
>> Fixes: 55e51c962432 ("app/testpmd: add device related commands")
>> Cc: ndabilpuram@marvell.com
>> Cc: stable@dpdk.org
>> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> 
> 
> ./devtools/check-git-log.sh -1
> Wrong headline label:
>         testpmd: fix memory leak in iterator
> 
> Headline label should be app/testpmd
> 
> Otherwise
> 
> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com
> 

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

(fixed headline label while merging)
  

Patch

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 446da3623442..cf59c378229f 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -2616,6 +2616,7 @@  detach_device(char *identifier)
 		if (ports[port_id].port_status != RTE_PORT_CLOSED) {
 			if (ports[port_id].port_status != RTE_PORT_STOPPED) {
 				printf("Port %u not stopped\n", port_id);
+				rte_eth_iterator_cleanup(&iterator);
 				return;
 			}