• Home
  • Raw
  • Download

Lines Matching refs:hsr

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