diff options
-rw-r--r-- | include/net/ip6_route.h | 1 | ||||
-rw-r--r-- | net/ipv6/mcast.c | 4 | ||||
-rw-r--r-- | net/ipv6/ndisc.c | 15 | ||||
-rw-r--r-- | net/ipv6/route.c | 1 |
4 files changed, 7 insertions, 14 deletions
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 30cbb15f6279..260f83f16bcf 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h | |||
@@ -103,7 +103,6 @@ extern struct rt6_info *rt6_lookup(struct net *net, | |||
103 | int oif, int flags); | 103 | int oif, int flags); |
104 | 104 | ||
105 | extern struct dst_entry *icmp6_dst_alloc(struct net_device *dev, | 105 | extern struct dst_entry *icmp6_dst_alloc(struct net_device *dev, |
106 | struct neighbour *neigh, | ||
107 | struct flowi6 *fl6); | 106 | struct flowi6 *fl6); |
108 | extern int icmp6_dst_gc(void); | 107 | extern int icmp6_dst_gc(void); |
109 | 108 | ||
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index 8237ee15eafd..587a84530a57 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c | |||
@@ -1391,7 +1391,7 @@ static void mld_sendpack(struct sk_buff *skb) | |||
1391 | icmpv6_flow_init(net->ipv6.igmp_sk, &fl6, ICMPV6_MLD2_REPORT, | 1391 | icmpv6_flow_init(net->ipv6.igmp_sk, &fl6, ICMPV6_MLD2_REPORT, |
1392 | &ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr, | 1392 | &ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr, |
1393 | skb->dev->ifindex); | 1393 | skb->dev->ifindex); |
1394 | dst = icmp6_dst_alloc(skb->dev, NULL, &fl6); | 1394 | dst = icmp6_dst_alloc(skb->dev, &fl6); |
1395 | 1395 | ||
1396 | err = 0; | 1396 | err = 0; |
1397 | if (IS_ERR(dst)) { | 1397 | if (IS_ERR(dst)) { |
@@ -1759,7 +1759,7 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type) | |||
1759 | icmpv6_flow_init(sk, &fl6, type, | 1759 | icmpv6_flow_init(sk, &fl6, type, |
1760 | &ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr, | 1760 | &ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr, |
1761 | skb->dev->ifindex); | 1761 | skb->dev->ifindex); |
1762 | dst = icmp6_dst_alloc(skb->dev, NULL, &fl6); | 1762 | dst = icmp6_dst_alloc(skb->dev, &fl6); |
1763 | if (IS_ERR(dst)) { | 1763 | if (IS_ERR(dst)) { |
1764 | err = PTR_ERR(dst); | 1764 | err = PTR_ERR(dst); |
1765 | goto err_out; | 1765 | goto err_out; |
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 5733cd27f4a3..429622d74705 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c | |||
@@ -432,7 +432,6 @@ static struct sk_buff *ndisc_build_skb(struct net_device *dev, | |||
432 | } | 432 | } |
433 | 433 | ||
434 | static void ndisc_send_skb(struct sk_buff *skb, struct net_device *dev, | 434 | static void ndisc_send_skb(struct sk_buff *skb, struct net_device *dev, |
435 | struct neighbour *neigh, | ||
436 | const struct in6_addr *daddr, | 435 | const struct in6_addr *daddr, |
437 | const struct in6_addr *saddr, | 436 | const struct in6_addr *saddr, |
438 | struct icmp6hdr *icmp6h) | 437 | struct icmp6hdr *icmp6h) |
@@ -448,7 +447,7 @@ static void ndisc_send_skb(struct sk_buff *skb, struct net_device *dev, | |||
448 | type = icmp6h->icmp6_type; | 447 | type = icmp6h->icmp6_type; |
449 | 448 | ||
450 | icmpv6_flow_init(sk, &fl6, type, saddr, daddr, dev->ifindex); | 449 | icmpv6_flow_init(sk, &fl6, type, saddr, daddr, dev->ifindex); |
451 | dst = icmp6_dst_alloc(dev, neigh, &fl6); | 450 | dst = icmp6_dst_alloc(dev, &fl6); |
452 | if (IS_ERR(dst)) { | 451 | if (IS_ERR(dst)) { |
453 | kfree_skb(skb); | 452 | kfree_skb(skb); |
454 | return; | 453 | return; |
@@ -474,7 +473,6 @@ static void ndisc_send_skb(struct sk_buff *skb, struct net_device *dev, | |||
474 | * Send a Neighbour Discover packet | 473 | * Send a Neighbour Discover packet |
475 | */ | 474 | */ |
476 | static void __ndisc_send(struct net_device *dev, | 475 | static void __ndisc_send(struct net_device *dev, |
477 | struct neighbour *neigh, | ||
478 | const struct in6_addr *daddr, | 476 | const struct in6_addr *daddr, |
479 | const struct in6_addr *saddr, | 477 | const struct in6_addr *saddr, |
480 | struct icmp6hdr *icmp6h, const struct in6_addr *target, | 478 | struct icmp6hdr *icmp6h, const struct in6_addr *target, |
@@ -486,7 +484,7 @@ static void __ndisc_send(struct net_device *dev, | |||
486 | if (!skb) | 484 | if (!skb) |
487 | return; | 485 | return; |
488 | 486 | ||
489 | ndisc_send_skb(skb, dev, neigh, daddr, saddr, icmp6h); | 487 | ndisc_send_skb(skb, dev, daddr, saddr, icmp6h); |
490 | } | 488 | } |
491 | 489 | ||
492 | static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh, | 490 | static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh, |
@@ -521,8 +519,7 @@ static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh, | |||
521 | icmp6h.icmp6_solicited = solicited; | 519 | icmp6h.icmp6_solicited = solicited; |
522 | icmp6h.icmp6_override = override; | 520 | icmp6h.icmp6_override = override; |
523 | 521 | ||
524 | __ndisc_send(dev, neigh, daddr, src_addr, | 522 | __ndisc_send(dev, daddr, src_addr, &icmp6h, solicited_addr, |
525 | &icmp6h, solicited_addr, | ||
526 | inc_opt ? ND_OPT_TARGET_LL_ADDR : 0); | 523 | inc_opt ? ND_OPT_TARGET_LL_ADDR : 0); |
527 | } | 524 | } |
528 | 525 | ||
@@ -563,8 +560,7 @@ void ndisc_send_ns(struct net_device *dev, struct neighbour *neigh, | |||
563 | saddr = &addr_buf; | 560 | saddr = &addr_buf; |
564 | } | 561 | } |
565 | 562 | ||
566 | __ndisc_send(dev, neigh, daddr, saddr, | 563 | __ndisc_send(dev, daddr, saddr, &icmp6h, solicit, |
567 | &icmp6h, solicit, | ||
568 | !ipv6_addr_any(saddr) ? ND_OPT_SOURCE_LL_ADDR : 0); | 564 | !ipv6_addr_any(saddr) ? ND_OPT_SOURCE_LL_ADDR : 0); |
569 | } | 565 | } |
570 | 566 | ||
@@ -598,8 +594,7 @@ void ndisc_send_rs(struct net_device *dev, const struct in6_addr *saddr, | |||
598 | } | 594 | } |
599 | } | 595 | } |
600 | #endif | 596 | #endif |
601 | __ndisc_send(dev, NULL, daddr, saddr, | 597 | __ndisc_send(dev, daddr, saddr, &icmp6h, NULL, |
602 | &icmp6h, NULL, | ||
603 | send_sllao ? ND_OPT_SOURCE_LL_ADDR : 0); | 598 | send_sllao ? ND_OPT_SOURCE_LL_ADDR : 0); |
604 | } | 599 | } |
605 | 600 | ||
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 3a562a103312..2d94d5a7a051 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
@@ -1203,7 +1203,6 @@ static struct dst_entry *icmp6_dst_gc_list; | |||
1203 | static DEFINE_SPINLOCK(icmp6_dst_lock); | 1203 | static DEFINE_SPINLOCK(icmp6_dst_lock); |
1204 | 1204 | ||
1205 | struct dst_entry *icmp6_dst_alloc(struct net_device *dev, | 1205 | struct dst_entry *icmp6_dst_alloc(struct net_device *dev, |
1206 | struct neighbour *neigh, | ||
1207 | struct flowi6 *fl6) | 1206 | struct flowi6 *fl6) |
1208 | { | 1207 | { |
1209 | struct dst_entry *dst; | 1208 | struct dst_entry *dst; |