diff options
author | Ingo Molnar <mingo@kernel.org> | 2018-03-31 07:30:17 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2018-03-31 07:30:17 +0200 |
commit | 169310f71fc820fe153ec04c6a111e444a68d6d5 (patch) | |
tree | a586d0f08548159ceb8527ff59f8414579f70c1f /net/sched/act_skbmod.c | |
parent | b3c39758c8a6972f02b43f83dba7fe7a352371b9 (diff) | |
parent | c2a9838452a4d71f76103c18c926468a9ea05713 (diff) | |
download | linux-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.c | 5 |
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, |