Last commit 738a2445c0 introduced a bug where the mask list of a flow table was freed even when the table's flows and mask list is reused by another table.
Bug #32932 Reported-by: Len Gao <l...@vmware.com> Signed-off-by: Andy Zhou <az...@nicira.com> --- datapath/flow.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/datapath/flow.c b/datapath/flow.c index b9ad608..2e46866 100644 --- a/datapath/flow.c +++ b/datapath/flow.c @@ -502,8 +502,10 @@ static struct flow_table *__flow_tbl_alloc(int new_size) static void __flow_tbl_destroy(struct flow_table *table) { - BUG_ON(!list_empty(table->mask_list)); - kfree(table->mask_list); + if (!table->keep_flows) { + BUG_ON(!list_empty(table->mask_list)); + kfree(table->mask_list); + } free_buckets(table->buckets); kfree(table); -- 1.7.9.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev