diff options
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/ndisc.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index b79b00042310..053147a0027e 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c | |||
@@ -627,7 +627,6 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr, | |||
627 | struct sk_buff *skb; | 627 | struct sk_buff *skb; |
628 | struct icmp6hdr *hdr; | 628 | struct icmp6hdr *hdr; |
629 | __u8 * opt; | 629 | __u8 * opt; |
630 | struct inet6_ifaddr *ifp; | ||
631 | int send_sllao = dev->addr_len; | 630 | int send_sllao = dev->addr_len; |
632 | int len; | 631 | int len; |
633 | int err; | 632 | int err; |
@@ -643,12 +642,12 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr, | |||
643 | * supress the inclusion of the sllao. | 642 | * supress the inclusion of the sllao. |
644 | */ | 643 | */ |
645 | if (send_sllao) { | 644 | if (send_sllao) { |
646 | ifp = ipv6_get_ifaddr(saddr, dev, 1); | 645 | struct inet6_ifaddr *ifp = ipv6_get_ifaddr(saddr, dev, 1); |
647 | if (ifp) { | 646 | if (ifp) { |
648 | if (ifp->flags & IFA_F_OPTIMISTIC) { | 647 | if (ifp->flags & IFA_F_OPTIMISTIC) { |
649 | send_sllao=0; | 648 | send_sllao = 0; |
650 | in6_ifa_put(ifp); | ||
651 | } | 649 | } |
650 | in6_ifa_put(ifp); | ||
652 | } else { | 651 | } else { |
653 | send_sllao = 0; | 652 | send_sllao = 0; |
654 | } | 653 | } |