Lines Matching defs:idrinfo
127 struct tcf_idrinfo *idrinfo = p->idrinfo;
129 if (refcount_dec_and_mutex_lock(&p->tcfa_refcnt, &idrinfo->lock)) {
132 idr_remove(&idrinfo->action_idr, p->tcfa_index);
133 mutex_unlock(&idrinfo->lock);
229 static int tcf_dump_walker(struct tcf_idrinfo *idrinfo, struct sk_buff *skb,
236 struct idr *idr = &idrinfo->action_idr;
241 mutex_lock(&idrinfo->lock);
278 mutex_unlock(&idrinfo->lock);
296 idr_remove(&p->idrinfo->action_idr, p->tcfa_index);
304 static int tcf_del_walker(struct tcf_idrinfo *idrinfo, struct sk_buff *skb,
311 struct idr *idr = &idrinfo->action_idr;
323 mutex_lock(&idrinfo->lock);
334 mutex_unlock(&idrinfo->lock);
358 struct tcf_idrinfo *idrinfo = tn->idrinfo;
361 return tcf_del_walker(idrinfo, skb, ops, extack);
363 return tcf_dump_walker(idrinfo, skb, cb);
374 struct tcf_idrinfo *idrinfo = tn->idrinfo;
377 mutex_lock(&idrinfo->lock);
378 p = idr_find(&idrinfo->action_idr, index);
383 mutex_unlock(&idrinfo->lock);
393 static int tcf_idr_delete_index(struct tcf_idrinfo *idrinfo, u32 index)
398 mutex_lock(&idrinfo->lock);
399 p = idr_find(&idrinfo->action_idr, index);
401 mutex_unlock(&idrinfo->lock);
409 WARN_ON(p != idr_remove(&idrinfo->action_idr,
411 mutex_unlock(&idrinfo->lock);
422 mutex_unlock(&idrinfo->lock);
431 struct tcf_idrinfo *idrinfo = tn->idrinfo;
465 p->idrinfo = idrinfo;
497 struct tcf_idrinfo *idrinfo = tn->idrinfo;
499 mutex_lock(&idrinfo->lock);
501 WARN_ON(!IS_ERR(idr_remove(&idrinfo->action_idr, index)));
502 mutex_unlock(&idrinfo->lock);
515 struct tcf_idrinfo *idrinfo = tn->idrinfo;
520 mutex_lock(&idrinfo->lock);
522 p = idr_find(&idrinfo->action_idr, *index);
527 mutex_unlock(&idrinfo->lock);
539 ret = idr_alloc_u32(&idrinfo->action_idr, NULL, index,
542 idr_replace(&idrinfo->action_idr,
548 ret = idr_alloc_u32(&idrinfo->action_idr, NULL, index,
551 idr_replace(&idrinfo->action_idr, ERR_PTR(-EBUSY),
554 mutex_unlock(&idrinfo->lock);
560 struct tcf_idrinfo *idrinfo)
562 struct idr *idr = &idrinfo->action_idr;
575 idr_destroy(&idrinfo->action_idr);
925 struct tcf_idrinfo *idrinfo;
929 idrinfo = a->idrinfo;
930 mutex_lock(&idrinfo->lock);
934 idr_replace(&idrinfo->action_idr, a, a->tcfa_index);
935 mutex_unlock(&idrinfo->lock);
1373 struct tcf_idrinfo *idrinfo = a->idrinfo;
1384 ret = tcf_idr_delete_index(idrinfo, act_index);