diff options
Diffstat (limited to 'net/bridge/br_multicast.c')
-rw-r--r-- | net/bridge/br_multicast.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 6852f3c7009c..43844144c9c4 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c | |||
@@ -464,8 +464,11 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br, | |||
464 | if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0, | 464 | if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0, |
465 | &ip6h->saddr)) { | 465 | &ip6h->saddr)) { |
466 | kfree_skb(skb); | 466 | kfree_skb(skb); |
467 | br->has_ipv6_addr = 0; | ||
467 | return NULL; | 468 | return NULL; |
468 | } | 469 | } |
470 | |||
471 | br->has_ipv6_addr = 1; | ||
469 | ipv6_eth_mc_map(&ip6h->daddr, eth->h_dest); | 472 | ipv6_eth_mc_map(&ip6h->daddr, eth->h_dest); |
470 | 473 | ||
471 | hopopt = (u8 *)(ip6h + 1); | 474 | hopopt = (u8 *)(ip6h + 1); |
@@ -1745,6 +1748,7 @@ void br_multicast_init(struct net_bridge *br) | |||
1745 | br->ip6_other_query.delay_time = 0; | 1748 | br->ip6_other_query.delay_time = 0; |
1746 | br->ip6_querier.port = NULL; | 1749 | br->ip6_querier.port = NULL; |
1747 | #endif | 1750 | #endif |
1751 | br->has_ipv6_addr = 1; | ||
1748 | 1752 | ||
1749 | spin_lock_init(&br->multicast_lock); | 1753 | spin_lock_init(&br->multicast_lock); |
1750 | setup_timer(&br->multicast_router_timer, | 1754 | setup_timer(&br->multicast_router_timer, |