br_multicast.c (5b16328879302695101f403f261ff7c5f1ee4b84) | br_multicast.c (baa74d39ca39f2b22eeac5c3b069b58491ecd418) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Bridge multicast support. 4 * 5 * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au> 6 */ 7 8#include <linux/err.h> --- 580 unchanged lines hidden (view full) --- 589 struct net_bridge_port_group __rcu **pp) 590{ 591 struct net_bridge *br = pg->key.port->br; 592 struct net_bridge_group_src *ent; 593 struct hlist_node *tmp; 594 595 rcu_assign_pointer(*pp, pg->next); 596 hlist_del_init(&pg->mglist); | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Bridge multicast support. 4 * 5 * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au> 6 */ 7 8#include <linux/err.h> --- 580 unchanged lines hidden (view full) --- 589 struct net_bridge_port_group __rcu **pp) 590{ 591 struct net_bridge *br = pg->key.port->br; 592 struct net_bridge_group_src *ent; 593 struct hlist_node *tmp; 594 595 rcu_assign_pointer(*pp, pg->next); 596 hlist_del_init(&pg->mglist); |
597 br_multicast_eht_clean_sets(pg); |
|
597 hlist_for_each_entry_safe(ent, tmp, &pg->src_list, node) 598 br_multicast_del_group_src(ent); 599 br_mdb_notify(br->dev, mp, pg, RTM_DELMDB); 600 if (!br_multicast_is_star_g(&mp->addr)) { 601 rhashtable_remove_fast(&br->sg_port_tbl, &pg->rhnode, 602 br_sg_port_rht_params); 603 br_multicast_sg_del_exclude_ports(mp); 604 } else { --- 564 unchanged lines hidden (view full) --- 1169 return NULL; 1170 1171 p->key.addr = *group; 1172 p->key.port = port; 1173 p->flags = flags; 1174 p->filter_mode = filter_mode; 1175 p->rt_protocol = rt_protocol; 1176 p->eht_host_tree = RB_ROOT; | 598 hlist_for_each_entry_safe(ent, tmp, &pg->src_list, node) 599 br_multicast_del_group_src(ent); 600 br_mdb_notify(br->dev, mp, pg, RTM_DELMDB); 601 if (!br_multicast_is_star_g(&mp->addr)) { 602 rhashtable_remove_fast(&br->sg_port_tbl, &pg->rhnode, 603 br_sg_port_rht_params); 604 br_multicast_sg_del_exclude_ports(mp); 605 } else { --- 564 unchanged lines hidden (view full) --- 1170 return NULL; 1171 1172 p->key.addr = *group; 1173 p->key.port = port; 1174 p->flags = flags; 1175 p->filter_mode = filter_mode; 1176 p->rt_protocol = rt_protocol; 1177 p->eht_host_tree = RB_ROOT; |
1178 p->eht_set_tree = RB_ROOT; |
|
1177 p->mcast_gc.destroy = br_multicast_destroy_port_group; 1178 INIT_HLIST_HEAD(&p->src_list); 1179 1180 if (!br_multicast_is_star_g(group) && 1181 rhashtable_lookup_insert_fast(&port->br->sg_port_tbl, &p->rhnode, 1182 br_sg_port_rht_params)) { 1183 kfree(p); 1184 return NULL; --- 2774 unchanged lines hidden --- | 1179 p->mcast_gc.destroy = br_multicast_destroy_port_group; 1180 INIT_HLIST_HEAD(&p->src_list); 1181 1182 if (!br_multicast_is_star_g(group) && 1183 rhashtable_lookup_insert_fast(&port->br->sg_port_tbl, &p->rhnode, 1184 br_sg_port_rht_params)) { 1185 kfree(p); 1186 return NULL; --- 2774 unchanged lines hidden --- |