summaryrefslogtreecommitdiffstats
path: root/net/sched/cls_cgroup.c
diff options
context:
space:
mode:
authorJohn Fastabend <john.fastabend@gmail.com>2014-09-16 09:33:42 +0200
committerDavid S. Miller <davem@davemloft.net>2014-09-16 22:26:39 +0200
commit9f6c38e70b6c7ea379394a755fe76e09996f5370 (patch)
tree510acfc9db27281b4ec1d839d2b9fef41025a104 /net/sched/cls_cgroup.c
parentMerge branch 'net_next_ovs' of git://git.kernel.org/pub/scm/linux/kernel/git/... (diff)
downloadlinux-9f6c38e70b6c7ea379394a755fe76e09996f5370.tar.xz
linux-9f6c38e70b6c7ea379394a755fe76e09996f5370.zip
net: sched: cls_cgroup need tcf_exts_init in all cases
This ensures the tcf_exts_init() is called for all cases. Fixes: 952313bd62589cae216a57 ("net: sched: cls_cgroup use RCU") Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Acked-by: Cong Wang <cwang@twopensource.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/cls_cgroup.c')
-rw-r--r--net/sched/cls_cgroup.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c
index 10c7ffde13e2..15c34d4ccd9e 100644
--- a/net/sched/cls_cgroup.c
+++ b/net/sched/cls_cgroup.c
@@ -116,12 +116,11 @@ static int cls_cgroup_change(struct net *net, struct sk_buff *in_skb,
if (!new)
return -ENOBUFS;
- if (head) {
+ tcf_exts_init(&new->exts, TCA_CGROUP_ACT, TCA_CGROUP_POLICE);
+ if (head)
new->handle = head->handle;
- } else {
- tcf_exts_init(&new->exts, TCA_CGROUP_ACT, TCA_CGROUP_POLICE);
+ else
new->handle = handle;
- }
new->tp = tp;
err = nla_parse_nested(tb, TCA_CGROUP_MAX, tca[TCA_OPTIONS],