diff options
Diffstat (limited to 'net/ipv6')
| -rw-r--r-- | net/ipv6/ip6_output.c | 2 | ||||
| -rw-r--r-- | net/ipv6/route.c | 5 | 
2 files changed, 4 insertions, 3 deletions
| diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 834475717110..21efcd02f337 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -59,8 +59,8 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *  {  	struct dst_entry *dst = skb_dst(skb);  	struct net_device *dev = dst->dev; +	const struct in6_addr *nexthop;  	struct neighbour *neigh; -	struct in6_addr *nexthop;  	int ret;  	if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 11ad62effd56..97a843cf164c 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -218,7 +218,8 @@ static struct neighbour *ip6_dst_neigh_lookup(const struct dst_entry *dst,  {  	const struct rt6_info *rt = container_of(dst, struct rt6_info, dst); -	return ip6_neigh_lookup(&rt->rt6i_gateway, dst->dev, skb, daddr); +	return ip6_neigh_lookup(rt6_nexthop(rt, &in6addr_any), +				dst->dev, skb, daddr);  }  static void ip6_confirm_neigh(const struct dst_entry *dst, const void *daddr) @@ -5281,7 +5282,7 @@ static struct ctl_table ipv6_route_table_template[] = {  		.data		=	&init_net.ipv6.sysctl.skip_notify_on_dev_down,  		.maxlen		=	sizeof(int),  		.mode		=	0644, -		.proc_handler	=	proc_dointvec, +		.proc_handler	=	proc_dointvec_minmax,  		.extra1		=	&zero,  		.extra2		=	&one,  	}, | 
