diff options
Diffstat (limited to 'net/ipv6/ndisc.c')
| -rw-r--r-- | net/ipv6/ndisc.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index a7eae30f4554..555a31347eda 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c | |||
| @@ -447,10 +447,8 @@ static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh, | |||
| 447 | return; | 447 | return; |
| 448 | 448 | ||
| 449 | err = xfrm_lookup(&dst, &fl, NULL, 0); | 449 | err = xfrm_lookup(&dst, &fl, NULL, 0); |
| 450 | if (err < 0) { | 450 | if (err < 0) |
| 451 | dst_release(dst); | ||
| 452 | return; | 451 | return; |
| 453 | } | ||
| 454 | 452 | ||
| 455 | if (inc_opt) { | 453 | if (inc_opt) { |
| 456 | if (dev->addr_len) | 454 | if (dev->addr_len) |
| @@ -539,10 +537,8 @@ void ndisc_send_ns(struct net_device *dev, struct neighbour *neigh, | |||
| 539 | return; | 537 | return; |
| 540 | 538 | ||
| 541 | err = xfrm_lookup(&dst, &fl, NULL, 0); | 539 | err = xfrm_lookup(&dst, &fl, NULL, 0); |
| 542 | if (err < 0) { | 540 | if (err < 0) |
| 543 | dst_release(dst); | ||
| 544 | return; | 541 | return; |
| 545 | } | ||
| 546 | 542 | ||
| 547 | len = sizeof(struct icmp6hdr) + sizeof(struct in6_addr); | 543 | len = sizeof(struct icmp6hdr) + sizeof(struct in6_addr); |
| 548 | send_llinfo = dev->addr_len && !ipv6_addr_any(saddr); | 544 | send_llinfo = dev->addr_len && !ipv6_addr_any(saddr); |
| @@ -616,10 +612,8 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr, | |||
| 616 | return; | 612 | return; |
| 617 | 613 | ||
| 618 | err = xfrm_lookup(&dst, &fl, NULL, 0); | 614 | err = xfrm_lookup(&dst, &fl, NULL, 0); |
| 619 | if (err < 0) { | 615 | if (err < 0) |
| 620 | dst_release(dst); | ||
| 621 | return; | 616 | return; |
| 622 | } | ||
| 623 | 617 | ||
| 624 | len = sizeof(struct icmp6hdr); | 618 | len = sizeof(struct icmp6hdr); |
| 625 | if (dev->addr_len) | 619 | if (dev->addr_len) |
| @@ -1353,10 +1347,8 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh, | |||
| 1353 | return; | 1347 | return; |
| 1354 | 1348 | ||
| 1355 | err = xfrm_lookup(&dst, &fl, NULL, 0); | 1349 | err = xfrm_lookup(&dst, &fl, NULL, 0); |
| 1356 | if (err) { | 1350 | if (err) |
| 1357 | dst_release(dst); | ||
| 1358 | return; | 1351 | return; |
| 1359 | } | ||
| 1360 | 1352 | ||
| 1361 | rt = (struct rt6_info *) dst; | 1353 | rt = (struct rt6_info *) dst; |
| 1362 | 1354 | ||
