diff options
author | Daniel Borkmann <dborkman@redhat.com> | 2013-12-10 12:02:03 +0100 |
---|---|---|
committer | Jesse Gross <jesse@nicira.com> | 2014-01-06 15:52:30 -0800 |
commit | 11d6c461b32a3fb7e89f91ef7fa54c5446335a9c (patch) | |
tree | ec54a0d617eaa9f1bdc81acb7349b4999b43bd5a /net/openvswitch/flow_table.c | |
parent | e298e505700604c97e6a9edb21cebb080bdb91f6 (diff) | |
download | talos-obmc-linux-11d6c461b32a3fb7e89f91ef7fa54c5446335a9c.tar.gz talos-obmc-linux-11d6c461b32a3fb7e89f91ef7fa54c5446335a9c.zip |
net: ovs: use kfree_rcu instead of rcu_free_{sw_flow_mask_cb,acts_callback}
As we're only doing a kfree() anyway in the RCU callback, we can
simply use kfree_rcu, which does the same job, and remove the
function rcu_free_sw_flow_mask_cb() and rcu_free_acts_callback().
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Diffstat (limited to 'net/openvswitch/flow_table.c')
-rw-r--r-- | net/openvswitch/flow_table.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index 299ea8bb400c..099a1a9a3068 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -155,13 +155,6 @@ static void rcu_free_flow_callback(struct rcu_head *rcu) flow_free(flow); } -static void rcu_free_sw_flow_mask_cb(struct rcu_head *rcu) -{ - struct sw_flow_mask *mask = container_of(rcu, struct sw_flow_mask, rcu); - - kfree(mask); -} - static void flow_mask_del_ref(struct sw_flow_mask *mask, bool deferred) { if (!mask) @@ -173,7 +166,7 @@ static void flow_mask_del_ref(struct sw_flow_mask *mask, bool deferred) if (!mask->ref_count) { list_del_rcu(&mask->list); if (deferred) - call_rcu(&mask->rcu, rcu_free_sw_flow_mask_cb); + kfree_rcu(mask, rcu); else kfree(mask); } |