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, |
