summaryrefslogtreecommitdiffstats
path: root/net/bridge/br_multicast.c
diff options
context:
space:
mode:
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>2015-07-15 16:16:50 +0200
committerDavid S. Miller <davem@davemloft.net>2015-07-20 21:49:10 +0200
commitef8299de7e2bf61ed24d1da699fa5ba13549d5f8 (patch)
treebd2c16ec45a0bf269ca04fb414e6f1c1865780ad /net/bridge/br_multicast.c
parentMerge branch 'bpf_cgroup_classid' (diff)
downloadlinux-ef8299de7e2bf61ed24d1da699fa5ba13549d5f8.tar.xz
linux-ef8299de7e2bf61ed24d1da699fa5ba13549d5f8.zip
bridge: multicast: notify on group delete
Group notifications were not sent when a group expired or was deleted due to bridge/port device being deleted. So add br_mdb_notify() to br_multicast_del_pg(). Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_multicast.c')
-rw-r--r--net/bridge/br_multicast.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 5a44cd9473f2..55903d91d0a8 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -273,6 +273,8 @@ static void br_multicast_del_pg(struct net_bridge *br,
rcu_assign_pointer(*pp, p->next);
hlist_del_init(&p->mglist);
del_timer(&p->timer);
+ br_mdb_notify(br->dev, p->port, &pg->addr, RTM_DELMDB,
+ p->state);
call_rcu_bh(&p->rcu, br_multicast_free_pg);
if (!mp->ports && !mp->mglist &&