]> git.droids-corp.org - dpdk.git/blobdiff - lib/librte_lpm/rte_lpm6.c
lpm6: fix missing free
[dpdk.git] / lib / librte_lpm / rte_lpm6.c
index 6c2b293b51f205920b79a27d0dce1b0d90d406c9..eded7725e800358716cc525db079755bd1d5c3a0 100644 (file)
@@ -277,15 +277,13 @@ rte_lpm6_free(struct rte_lpm6 *lpm)
                if (te->data == (void *) lpm)
                        break;
        }
-       if (te == NULL) {
-               rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK);
-               return;
-       }
 
-       TAILQ_REMOVE(lpm_list, te, next);
+       if (te != NULL)
+               TAILQ_REMOVE(lpm_list, te, next);
 
        rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK);
 
+       rte_free(lpm->rules_tbl);
        rte_free(lpm);
        rte_free(te);
 }