if ((cl = __cls_set_class(&f->res.class, 0)) != 0)
tp->q->ops->cl_ops->unbind_tcf(tp->q, cl);
#ifdef CONFIG_NET_CLS_POLICE
- tcf_police_release(f->police);
+ tcf_police_release(f->police,TCA_ACT_UNBIND);
#endif
kfree(f);
}
tp->q->ops->cl_ops->unbind_tcf(tp->q, cl);
#ifdef CONFIG_NET_CLS_POLICE
- tcf_police_release(f->police);
+ tcf_police_release(f->police,TCA_ACT_UNBIND);
#endif
kfree(f);
police = xchg(&f->police, police);
tcf_tree_unlock(tp);
- tcf_police_release(police);
+ tcf_police_release(police,TCA_ACT_UNBIND);
}
#endif
return 0;
rta->rta_len = skb->tail - b;
#ifdef CONFIG_NET_CLS_POLICE
if (f->police) {
- if (qdisc_copy_stats(skb, &f->police->stats))
+ if (qdisc_copy_stats(skb, &f->police->stats,
+ f->police->stats_lock))
goto rtattr_failure;
}
#endif