Lines Matching refs:r

473 	struct receiver *r;  in can_rx_register()  local
483 r = kmem_cache_alloc(rcv_cache, GFP_KERNEL); in can_rx_register()
484 if (!r) in can_rx_register()
493 r->can_id = can_id; in can_rx_register()
494 r->mask = mask; in can_rx_register()
495 r->matches = 0; in can_rx_register()
496 r->func = func; in can_rx_register()
497 r->data = data; in can_rx_register()
498 r->ident = ident; in can_rx_register()
500 hlist_add_head_rcu(&r->list, rl); in can_rx_register()
507 kmem_cache_free(rcv_cache, r); in can_rx_register()
522 struct receiver *r = container_of(rp, struct receiver, rcu); in can_rx_delete_receiver() local
524 kmem_cache_free(rcv_cache, r); in can_rx_delete_receiver()
541 struct receiver *r = NULL; in can_rx_unregister() local
566 hlist_for_each_entry_rcu(r, rl, list) { in can_rx_unregister()
567 if (r->can_id == can_id && r->mask == mask && in can_rx_unregister()
568 r->func == func && r->data == data) in can_rx_unregister()
577 if (!r) { in can_rx_unregister()
583 hlist_del_rcu(&r->list); in can_rx_unregister()
599 if (r) in can_rx_unregister()
600 call_rcu(&r->rcu, can_rx_delete_receiver); in can_rx_unregister()
604 static inline void deliver(struct sk_buff *skb, struct receiver *r) in deliver() argument
606 r->func(skb, r->data); in deliver()
607 r->matches++; in deliver()
612 struct receiver *r; in can_rcv_filter() local
622 hlist_for_each_entry_rcu(r, &d->rx[RX_ERR], list) { in can_rcv_filter()
623 if (can_id & r->mask) { in can_rcv_filter()
624 deliver(skb, r); in can_rcv_filter()
632 hlist_for_each_entry_rcu(r, &d->rx[RX_ALL], list) { in can_rcv_filter()
633 deliver(skb, r); in can_rcv_filter()
638 hlist_for_each_entry_rcu(r, &d->rx[RX_FIL], list) { in can_rcv_filter()
639 if ((can_id & r->mask) == r->can_id) { in can_rcv_filter()
640 deliver(skb, r); in can_rcv_filter()
646 hlist_for_each_entry_rcu(r, &d->rx[RX_INV], list) { in can_rcv_filter()
647 if ((can_id & r->mask) != r->can_id) { in can_rcv_filter()
648 deliver(skb, r); in can_rcv_filter()
658 hlist_for_each_entry_rcu(r, &d->rx_eff[effhash(can_id)], list) { in can_rcv_filter()
659 if (r->can_id == can_id) { in can_rcv_filter()
660 deliver(skb, r); in can_rcv_filter()
666 hlist_for_each_entry_rcu(r, &d->rx_sff[can_id], list) { in can_rcv_filter()
667 deliver(skb, r); in can_rcv_filter()