Lines Matching defs:idrinfo
375 struct tcf_idrinfo *idrinfo = p->idrinfo;
377 if (refcount_dec_and_mutex_lock(&p->tcfa_refcnt, &idrinfo->lock)) {
380 idr_remove(&idrinfo->action_idr, p->tcfa_index);
381 mutex_unlock(&idrinfo->lock);
507 static int tcf_dump_walker(struct tcf_idrinfo *idrinfo, struct sk_buff *skb,
514 struct idr *idr = &idrinfo->action_idr;
519 mutex_lock(&idrinfo->lock);
560 mutex_unlock(&idrinfo->lock);
578 idr_remove(&p->idrinfo->action_idr, p->tcfa_index);
586 static int tcf_del_walker(struct tcf_idrinfo *idrinfo, struct sk_buff *skb,
593 struct idr *idr = &idrinfo->action_idr;
605 mutex_lock(&idrinfo->lock);
616 mutex_unlock(&idrinfo->lock);
640 struct tcf_idrinfo *idrinfo = tn->idrinfo;
643 return tcf_del_walker(idrinfo, skb, ops, extack);
645 return tcf_dump_walker(idrinfo, skb, cb);
656 struct tcf_idrinfo *idrinfo = tn->idrinfo;
659 mutex_lock(&idrinfo->lock);
660 p = idr_find(&idrinfo->action_idr, index);
665 mutex_unlock(&idrinfo->lock);
700 static int tcf_idr_delete_index(struct tcf_idrinfo *idrinfo, u32 index)
705 mutex_lock(&idrinfo->lock);
706 p = idr_find(&idrinfo->action_idr, index);
708 mutex_unlock(&idrinfo->lock);
716 WARN_ON(p != idr_remove(&idrinfo->action_idr,
718 mutex_unlock(&idrinfo->lock);
729 mutex_unlock(&idrinfo->lock);
738 struct tcf_idrinfo *idrinfo = tn->idrinfo;
774 p->idrinfo = idrinfo;
806 struct tcf_idrinfo *idrinfo = tn->idrinfo;
808 mutex_lock(&idrinfo->lock);
810 WARN_ON(!IS_ERR(idr_remove(&idrinfo->action_idr, index)));
811 mutex_unlock(&idrinfo->lock);
824 struct tcf_idrinfo *idrinfo = tn->idrinfo;
829 mutex_lock(&idrinfo->lock);
831 p = idr_find(&idrinfo->action_idr, *index);
836 mutex_unlock(&idrinfo->lock);
848 ret = idr_alloc_u32(&idrinfo->action_idr, NULL, index,
851 idr_replace(&idrinfo->action_idr,
857 ret = idr_alloc_u32(&idrinfo->action_idr, NULL, index,
860 idr_replace(&idrinfo->action_idr, ERR_PTR(-EBUSY),
863 mutex_unlock(&idrinfo->lock);
869 struct tcf_idrinfo *idrinfo)
871 struct idr *idr = &idrinfo->action_idr;
884 idr_destroy(&idrinfo->action_idr);
1283 struct tcf_idrinfo *idrinfo;
1287 idrinfo = a->idrinfo;
1288 mutex_lock(&idrinfo->lock);
1292 idr_replace(&idrinfo->action_idr, a, a->tcfa_index);
1293 mutex_unlock(&idrinfo->lock);
1764 struct tcf_idrinfo *idrinfo = a->idrinfo;
1775 ret = tcf_idr_delete_index(idrinfo, act_index);
1819 struct tcf_idrinfo *idrinfo;
1841 idrinfo = tn->idrinfo;
1842 if (!idrinfo)
1845 mutex_lock(&idrinfo->lock);
1846 idr = &idrinfo->action_idr;
1864 mutex_unlock(&idrinfo->lock);