Commit 13990f81 authored by John Fastabend's avatar John Fastabend Committed by David S. Miller

net: sched: cls_cgroup tear down exts and ematch from rcu callback

It is not RCU safe to destroy the action chain while there
is a possibility of readers accessing it. Move this code
into the rcu callback using the same rcu callback used in the
code patch to make a change to head.
Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
Acked-by: default avatarCong Wang <cwang@twopensource.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 82a470f1
...@@ -156,10 +156,8 @@ static void cls_cgroup_destroy(struct tcf_proto *tp) ...@@ -156,10 +156,8 @@ static void cls_cgroup_destroy(struct tcf_proto *tp)
struct cls_cgroup_head *head = rtnl_dereference(tp->root); struct cls_cgroup_head *head = rtnl_dereference(tp->root);
if (head) { if (head) {
tcf_exts_destroy(&head->exts);
tcf_em_tree_destroy(&head->ematches);
RCU_INIT_POINTER(tp->root, NULL); RCU_INIT_POINTER(tp->root, NULL);
kfree_rcu(head, rcu); call_rcu(&head->rcu, cls_cgroup_destroy_rcu);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment