summaryrefslogtreecommitdiffstats
path: root/net/sched/act_skbmod.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2018-03-31 07:30:17 +0200
committerIngo Molnar <mingo@kernel.org>2018-03-31 07:30:17 +0200
commit169310f71fc820fe153ec04c6a111e444a68d6d5 (patch)
treea586d0f08548159ceb8527ff59f8414579f70c1f /net/sched/act_skbmod.c
parentb3c39758c8a6972f02b43f83dba7fe7a352371b9 (diff)
parentc2a9838452a4d71f76103c18c926468a9ea05713 (diff)
downloadlinux-169310f71fc820fe153ec04c6a111e444a68d6d5.tar.bz2
Merge branch 'linus' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/sched/act_skbmod.c')
-rw-r--r--net/sched/act_skbmod.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sched/act_skbmod.c b/net/sched/act_skbmod.c
index fa975262dbac..7b0700f52b50 100644
--- a/net/sched/act_skbmod.c
+++ b/net/sched/act_skbmod.c
@@ -152,7 +152,7 @@ static int tcf_skbmod_init(struct net *net, struct nlattr *nla,
ASSERT_RTNL();
p = kzalloc(sizeof(struct tcf_skbmod_params), GFP_KERNEL);
if (unlikely(!p)) {
- if (ovr)
+ if (ret == ACT_P_CREATED)
tcf_idr_release(*a, bind);
return -ENOMEM;
}
@@ -190,7 +190,8 @@ static void tcf_skbmod_cleanup(struct tc_action *a)
struct tcf_skbmod_params *p;
p = rcu_dereference_protected(d->skbmod_p, 1);
- kfree_rcu(p, rcu);
+ if (p)
+ kfree_rcu(p, rcu);
}
static int tcf_skbmod_dump(struct sk_buff *skb, struct tc_action *a,