diff options
Diffstat (limited to 'net/sched/act_pedit.c')
| -rw-r--r-- | net/sched/act_pedit.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/net/sched/act_pedit.c b/net/sched/act_pedit.c index 26aa2f6ce25..45c53ab067a 100644 --- a/net/sched/act_pedit.c +++ b/net/sched/act_pedit.c @@ -74,7 +74,10 @@ static int tcf_pedit_init(struct nlattr *nla, struct nlattr *est,  		p = to_pedit(pc);  		keys = kmalloc(ksize, GFP_KERNEL);  		if (keys == NULL) { -			kfree(pc); +			if (est) +				gen_kill_estimator(&pc->tcfc_bstats, +						   &pc->tcfc_rate_est); +			kfree_rcu(pc, tcfc_rcu);  			return -ENOMEM;  		}  		ret = ACT_P_CREATED;  |