X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=net%2Fopenvswitch%2Fflow_table.c;h=3a9d1dde76ed3457bbe527053d95bd9ec774f100;hb=c5e40ee287db61a79af1746954ee03ebbf1ff8a3;hp=4613df8c82900e32a4e0188688c9e0354022484d;hpb=b314acaccd7e0d55314d96be4a33b5f50d0b3344;p=platform%2Fkernel%2Flinux-starfive.git diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index 4613df8..3a9d1dde76 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -18,6 +18,7 @@ #include "flow.h" #include "datapath.h" +#include "flow_netlink.h" #include #include #include @@ -143,7 +144,8 @@ static void flow_free(struct sw_flow *flow) if (ovs_identifier_is_key(&flow->id)) kfree(flow->id.unmasked_key); - kfree((struct sw_flow_actions __force *)flow->sf_acts); + if (flow->sf_acts) + ovs_nla_free_flow_actions((struct sw_flow_actions __force *)flow->sf_acts); for_each_node(node) if (flow->stats[node]) kmem_cache_free(flow_stats_cache, @@ -752,7 +754,7 @@ int ovs_flow_init(void) BUILD_BUG_ON(sizeof(struct sw_flow_key) % sizeof(long)); flow_cache = kmem_cache_create("sw_flow", sizeof(struct sw_flow) - + (num_possible_nodes() + + (nr_node_ids * sizeof(struct flow_stats *)), 0, 0, NULL); if (flow_cache == NULL)