diff options
-rw-r--r-- | net/bridge/br_multicast.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index f701a21acb34..fdbd41c76ec4 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c | |||
@@ -719,7 +719,8 @@ static int br_multicast_add_group(struct net_bridge *br, | |||
719 | goto err; | 719 | goto err; |
720 | 720 | ||
721 | if (!port) { | 721 | if (!port) { |
722 | hlist_add_head(&mp->mglist, &br->mglist); | 722 | if (hlist_unhashed(&mp->mglist)) |
723 | hlist_add_head(&mp->mglist, &br->mglist); | ||
723 | mod_timer(&mp->timer, now + br->multicast_membership_interval); | 724 | mod_timer(&mp->timer, now + br->multicast_membership_interval); |
724 | goto out; | 725 | goto out; |
725 | } | 726 | } |