Lines Matching refs:proto
38 const struct stp_proto *proto; in stp_pdu_rcv() local
46 proto = rcu_dereference(garp_protos[eh->h_dest[5] - in stp_pdu_rcv()
48 if (proto && in stp_pdu_rcv()
49 !ether_addr_equal(eh->h_dest, proto->group_address)) in stp_pdu_rcv()
52 proto = rcu_dereference(stp_proto); in stp_pdu_rcv()
54 if (!proto) in stp_pdu_rcv()
57 proto->rcv(proto, skb, dev); in stp_pdu_rcv()
65 int stp_proto_register(const struct stp_proto *proto) in stp_proto_register() argument
77 if (is_zero_ether_addr(proto->group_address)) in stp_proto_register()
78 rcu_assign_pointer(stp_proto, proto); in stp_proto_register()
80 rcu_assign_pointer(garp_protos[proto->group_address[5] - in stp_proto_register()
81 GARP_ADDR_MIN], proto); in stp_proto_register()
88 void stp_proto_unregister(const struct stp_proto *proto) in stp_proto_unregister() argument
91 if (is_zero_ether_addr(proto->group_address)) in stp_proto_unregister()
94 RCU_INIT_POINTER(garp_protos[proto->group_address[5] - in stp_proto_unregister()