diff --git a/[refs] b/[refs] index 7b534d4bb403..3b8e68746156 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b997d79a91f7b6be952b98cf9d9585b124558f5b +refs/heads/master: bd4265fe365c0f3945dd5ff1527e52bbe2bedfa2 diff --git a/trunk/net/bridge/br_multicast.c b/trunk/net/bridge/br_multicast.c index 29b9812c8da0..2d85ca7111d3 100644 --- a/trunk/net/bridge/br_multicast.c +++ b/trunk/net/bridge/br_multicast.c @@ -1379,8 +1379,11 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl))) return -EINVAL; - if (iph->protocol != IPPROTO_IGMP) + if (iph->protocol != IPPROTO_IGMP) { + if ((iph->daddr & IGMP_LOCAL_GROUP_MASK) != IGMP_LOCAL_GROUP) + BR_INPUT_SKB_CB(skb)->mrouters_only = 1; return 0; + } len = ntohs(iph->tot_len); if (skb->len < len || len < ip_hdrlen(skb))