Hi, > -----Original Message----- > From: Vemula, Hari KumarX > Sent: Thursday, January 17, 2019 1:37 PM > To: dev@dpdk.org > Cc: Marohn, Byron <byron.mar...@intel.com>; Pattan, Reshma > <reshma.pat...@intel.com>; De Lara Guarch, Pablo > <pablo.de.lara.gua...@intel.com>; Parthasarathy, JananeeX M > <jananeex.m.parthasara...@intel.com>; Vemula, Hari KumarX > <hari.kumarx.vem...@intel.com>; sta...@dpdk.org > Subject: [PATCH v4] lib/efd: fix to free tail queue entry after use > > In rte_efd_create() allocated memory for tail queue entry but not freed. > Added freeing the tail queue entry. > > Fixes: 56b6ef874f80 ("efd: new Elastic Flow Distributor library") > Cc: sta...@dpdk.org > > Signed-off-by: Hari Kumar Vemula <hari.kumarx.vem...@intel.com> > Acked-by: Reshma Pattan <reshma.pat...@intel.com> > Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > --- > v4: RTE_TAILQ_CAST moved after for loop > v3: Replaced TAILQ_FOREACH_SAFE with TAILQ_FOREACH > v2: Updated commit message. > --- > lib/librte_efd/rte_efd.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/lib/librte_efd/rte_efd.c b/lib/librte_efd/rte_efd.c index > e6e5cfda2..b19e707d8 100644 > --- a/lib/librte_efd/rte_efd.c > +++ b/lib/librte_efd/rte_efd.c > @@ -740,6 +740,8 @@ void > rte_efd_free(struct rte_efd_table *table) { > uint8_t socket_id; > + struct rte_efd_list *efd_list; > + struct rte_tailq_entry *te, *temp; > > if (table == NULL) > return; > @@ -747,6 +749,18 @@ rte_efd_free(struct rte_efd_table *table) > for (socket_id = 0; socket_id < RTE_MAX_NUMA_NODES; socket_id++) > rte_free(table->chunks[socket_id]); > > + efd_list = RTE_TAILQ_CAST(rte_efd_tailq.head, rte_efd_list); > + rte_rwlock_write_lock(RTE_EAL_TAILQ_RWLOCK); > + > + TAILQ_FOREACH_SAFE(te, efd_list, next, temp) { > + if (te->data == (void *) table) { > + TAILQ_REMOVE(efd_list, te, next); > + rte_free(te); > + te = NULL;
No need to set te = NULL, as it is a local variable. Also, you can break here, as no duplicates are allowed. Apart from this two changes: Acked-by: Pablo de Lara <pablo.de.lara.gua...@intel.com>