aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/ip6_route.h1
-rw-r--r--net/ipv6/mcast.c4
-rw-r--r--net/ipv6/ndisc.c15
-rw-r--r--net/ipv6/route.c1
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
105extern struct dst_entry *icmp6_dst_alloc(struct net_device *dev, 105extern struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
106 struct neighbour *neigh,
107 struct flowi6 *fl6); 106 struct flowi6 *fl6);
108extern int icmp6_dst_gc(void); 107extern 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
434static void ndisc_send_skb(struct sk_buff *skb, struct net_device *dev, 434static 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 */
476static void __ndisc_send(struct net_device *dev, 475static 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
492static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh, 490static 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;
1203static DEFINE_SPINLOCK(icmp6_dst_lock); 1203static DEFINE_SPINLOCK(icmp6_dst_lock);
1204 1204
1205struct dst_entry *icmp6_dst_alloc(struct net_device *dev, 1205struct 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;