diff options
Diffstat (limited to 'net/ipv6/mcast.c')
| -rw-r--r-- | net/ipv6/mcast.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index 49f986d626a0..f2c9b6930ffc 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c | |||
| @@ -319,7 +319,6 @@ int ip6_mc_source(int add, int omode, struct sock *sk, | |||
| 319 | { | 319 | { |
| 320 | struct in6_addr *source, *group; | 320 | struct in6_addr *source, *group; |
| 321 | struct ipv6_mc_socklist *pmc; | 321 | struct ipv6_mc_socklist *pmc; |
| 322 | struct net_device *dev; | ||
| 323 | struct inet6_dev *idev; | 322 | struct inet6_dev *idev; |
| 324 | struct ipv6_pinfo *inet6 = inet6_sk(sk); | 323 | struct ipv6_pinfo *inet6 = inet6_sk(sk); |
| 325 | struct ip6_sf_socklist *psl; | 324 | struct ip6_sf_socklist *psl; |
| @@ -341,7 +340,6 @@ int ip6_mc_source(int add, int omode, struct sock *sk, | |||
| 341 | rcu_read_unlock(); | 340 | rcu_read_unlock(); |
| 342 | return -ENODEV; | 341 | return -ENODEV; |
| 343 | } | 342 | } |
| 344 | dev = idev->dev; | ||
| 345 | 343 | ||
| 346 | err = -EADDRNOTAVAIL; | 344 | err = -EADDRNOTAVAIL; |
| 347 | 345 | ||
| @@ -455,7 +453,6 @@ int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf) | |||
| 455 | { | 453 | { |
| 456 | struct in6_addr *group; | 454 | struct in6_addr *group; |
| 457 | struct ipv6_mc_socklist *pmc; | 455 | struct ipv6_mc_socklist *pmc; |
| 458 | struct net_device *dev; | ||
| 459 | struct inet6_dev *idev; | 456 | struct inet6_dev *idev; |
| 460 | struct ipv6_pinfo *inet6 = inet6_sk(sk); | 457 | struct ipv6_pinfo *inet6 = inet6_sk(sk); |
| 461 | struct ip6_sf_socklist *newpsl, *psl; | 458 | struct ip6_sf_socklist *newpsl, *psl; |
| @@ -478,7 +475,6 @@ int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf) | |||
| 478 | rcu_read_unlock(); | 475 | rcu_read_unlock(); |
| 479 | return -ENODEV; | 476 | return -ENODEV; |
| 480 | } | 477 | } |
| 481 | dev = idev->dev; | ||
| 482 | 478 | ||
| 483 | err = 0; | 479 | err = 0; |
| 484 | 480 | ||
| @@ -549,7 +545,6 @@ int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf, | |||
| 549 | struct in6_addr *group; | 545 | struct in6_addr *group; |
| 550 | struct ipv6_mc_socklist *pmc; | 546 | struct ipv6_mc_socklist *pmc; |
| 551 | struct inet6_dev *idev; | 547 | struct inet6_dev *idev; |
| 552 | struct net_device *dev; | ||
| 553 | struct ipv6_pinfo *inet6 = inet6_sk(sk); | 548 | struct ipv6_pinfo *inet6 = inet6_sk(sk); |
| 554 | struct ip6_sf_socklist *psl; | 549 | struct ip6_sf_socklist *psl; |
| 555 | struct net *net = sock_net(sk); | 550 | struct net *net = sock_net(sk); |
| @@ -566,7 +561,6 @@ int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf, | |||
| 566 | rcu_read_unlock(); | 561 | rcu_read_unlock(); |
| 567 | return -ENODEV; | 562 | return -ENODEV; |
| 568 | } | 563 | } |
| 569 | dev = idev->dev; | ||
| 570 | 564 | ||
| 571 | err = -EADDRNOTAVAIL; | 565 | err = -EADDRNOTAVAIL; |
| 572 | /* | 566 | /* |
| @@ -1429,7 +1423,12 @@ static void mld_sendpack(struct sk_buff *skb) | |||
| 1429 | &ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr, | 1423 | &ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr, |
| 1430 | skb->dev->ifindex); | 1424 | skb->dev->ifindex); |
| 1431 | 1425 | ||
| 1432 | err = xfrm_lookup(net, &dst, &fl, NULL, 0); | 1426 | dst = xfrm_lookup(net, dst, &fl, NULL, 0); |
| 1427 | err = 0; | ||
| 1428 | if (IS_ERR(dst)) { | ||
| 1429 | err = PTR_ERR(dst); | ||
| 1430 | dst = NULL; | ||
| 1431 | } | ||
| 1433 | skb_dst_set(skb, dst); | 1432 | skb_dst_set(skb, dst); |
| 1434 | if (err) | 1433 | if (err) |
| 1435 | goto err_out; | 1434 | goto err_out; |
| @@ -1796,9 +1795,11 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type) | |||
| 1796 | &ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr, | 1795 | &ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr, |
| 1797 | skb->dev->ifindex); | 1796 | skb->dev->ifindex); |
| 1798 | 1797 | ||
| 1799 | err = xfrm_lookup(net, &dst, &fl, NULL, 0); | 1798 | dst = xfrm_lookup(net, dst, &fl, NULL, 0); |
| 1800 | if (err) | 1799 | if (IS_ERR(dst)) { |
| 1800 | err = PTR_ERR(dst); | ||
| 1801 | goto err_out; | 1801 | goto err_out; |
| 1802 | } | ||
| 1802 | 1803 | ||
| 1803 | skb_dst_set(skb, dst); | 1804 | skb_dst_set(skb, dst); |
| 1804 | err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL, skb->dev, | 1805 | err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL, skb->dev, |
