Lines Matching defs:hsr

41 bool hsr_addr_is_self(struct hsr_priv *hsr, unsigned char *addr)
45 node = list_first_or_null_rcu(&hsr->self_node_db, struct hsr_node,
78 int hsr_create_self_node(struct hsr_priv *hsr,
82 struct list_head *self_node_db = &hsr->self_node_db;
92 spin_lock_bh(&hsr->list_lock);
97 spin_unlock_bh(&hsr->list_lock);
101 spin_unlock_bh(&hsr->list_lock);
107 void hsr_del_self_node(struct hsr_priv *hsr)
109 struct list_head *self_node_db = &hsr->self_node_db;
112 spin_lock_bh(&hsr->list_lock);
118 spin_unlock_bh(&hsr->list_lock);
147 static struct hsr_node *hsr_add_node(struct hsr_priv *hsr,
175 if (san && hsr->proto_ops->handle_san_frame)
176 hsr->proto_ops->handle_san_frame(san, rx_port, new_node);
178 spin_lock_bh(&hsr->list_lock);
180 lockdep_is_held(&hsr->list_lock)) {
187 spin_unlock_bh(&hsr->list_lock);
190 spin_unlock_bh(&hsr->list_lock);
210 struct hsr_priv *hsr = port->hsr;
224 if (hsr->proto_ops->update_san_info)
225 hsr->proto_ops->update_san_info(node, is_sup);
229 if (hsr->proto_ops->update_san_info)
230 hsr->proto_ops->update_san_info(node, is_sup);
255 return hsr_add_node(hsr, node_db, ethhdr->h_source, seq_out,
267 struct hsr_priv *hsr = port_rcv->hsr;
301 node_db = &port_rcv->hsr->node_db;
305 node_real = hsr_add_node(hsr, node_db, hsr_sp->macaddress_A,
329 spin_lock_bh(&hsr->list_lock);
331 spin_unlock_bh(&hsr->list_lock);
380 node_dst = find_node_by_addr_A(&port->hsr->node_db,
383 if (port->hsr->prot_version != PRP_V1 && net_ratelimit())
433 static struct hsr_port *get_late_port(struct hsr_priv *hsr,
437 return hsr_port_get_hsr(hsr, HSR_PT_SLAVE_A);
439 return hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B);
444 return hsr_port_get_hsr(hsr, HSR_PT_SLAVE_A);
448 return hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B);
458 struct hsr_priv *hsr = from_timer(hsr, t, prune_timer);
465 spin_lock_bh(&hsr->list_lock);
466 list_for_each_entry_safe(node, tmp, &hsr->node_db, mac_list) {
472 if (hsr_addr_is_self(hsr, node->macaddress_A))
499 port = get_late_port(hsr, node);
501 hsr_nl_ringerror(hsr, node->macaddress_A, port);
508 hsr_nl_nodedown(hsr, node->macaddress_A);
514 spin_unlock_bh(&hsr->list_lock);
517 mod_timer(&hsr->prune_timer,
521 void *hsr_get_next_node(struct hsr_priv *hsr, void *_pos,
527 node = list_first_or_null_rcu(&hsr->node_db,
535 list_for_each_entry_continue_rcu(node, &hsr->node_db, mac_list) {
543 int hsr_get_node_data(struct hsr_priv *hsr,
556 node = find_node_by_addr_A(&hsr->node_db, addr);
587 port = hsr_port_get_hsr(hsr, node->addr_B_port);