diff options
Diffstat (limited to 'net/ipv6/ndisc.c')
| -rw-r--r-- | net/ipv6/ndisc.c | 21 | 
1 files changed, 11 insertions, 10 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index ca4ffcc287f1..79aa9652ed86 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -479,7 +479,7 @@ static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh,  	if (ifp) {  		src_addr = solicited_addr;  		if (ifp->flags & IFA_F_OPTIMISTIC) -			override = 0; +			override = false;  		inc_opt |= ifp->idev->cnf.force_tllao;  		in6_ifa_put(ifp);  	} else { @@ -557,7 +557,7 @@ void ndisc_send_ns(struct net_device *dev, struct neighbour *neigh,  	}  	if (ipv6_addr_any(saddr)) -		inc_opt = 0; +		inc_opt = false;  	if (inc_opt)  		optlen += ndisc_opt_addr_space(dev); @@ -693,7 +693,7 @@ static void ndisc_recv_ns(struct sk_buff *skb)  	const struct in6_addr *saddr = &ipv6_hdr(skb)->saddr;  	const struct in6_addr *daddr = &ipv6_hdr(skb)->daddr;  	u8 *lladdr = NULL; -	u32 ndoptlen = skb->tail - (skb->transport_header + +	u32 ndoptlen = skb_tail_pointer(skb) - (skb_transport_header(skb) +  				    offsetof(struct nd_msg, opt));  	struct ndisc_options ndopts;  	struct net_device *dev = skb->dev; @@ -790,7 +790,7 @@ static void ndisc_recv_ns(struct sk_buff *skb)  		     (is_router = pndisc_is_router(&msg->target, dev)) >= 0)) {  			if (!(NEIGH_CB(skb)->flags & LOCALLY_ENQUEUED) &&  			    skb->pkt_type != PACKET_HOST && -			    inc != 0 && +			    inc &&  			    idev->nd_parms->proxy_delay != 0) {  				/*  				 * for anycast or proxy, @@ -853,7 +853,7 @@ static void ndisc_recv_na(struct sk_buff *skb)  	const struct in6_addr *saddr = &ipv6_hdr(skb)->saddr;  	const struct in6_addr *daddr = &ipv6_hdr(skb)->daddr;  	u8 *lladdr = NULL; -	u32 ndoptlen = skb->tail - (skb->transport_header + +	u32 ndoptlen = skb_tail_pointer(skb) - (skb_transport_header(skb) +  				    offsetof(struct nd_msg, opt));  	struct ndisc_options ndopts;  	struct net_device *dev = skb->dev; @@ -1069,7 +1069,8 @@ static void ndisc_router_discovery(struct sk_buff *skb)  	__u8 * opt = (__u8 *)(ra_msg + 1); -	optlen = (skb->tail - skb->transport_header) - sizeof(struct ra_msg); +	optlen = (skb_tail_pointer(skb) - skb_transport_header(skb)) - +		sizeof(struct ra_msg);  	if (!(ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)) {  		ND_PRINTK(2, warn, "RA: source address is not link-local\n"); @@ -1346,7 +1347,7 @@ static void ndisc_redirect_rcv(struct sk_buff *skb)  	u8 *hdr;  	struct ndisc_options ndopts;  	struct rd_msg *msg = (struct rd_msg *)skb_transport_header(skb); -	u32 ndoptlen = skb->tail - (skb->transport_header + +	u32 ndoptlen = skb_tail_pointer(skb) - (skb_transport_header(skb) +  				    offsetof(struct rd_msg, opt));  #ifdef CONFIG_IPV6_NDISC_NODETYPE @@ -1568,14 +1569,14 @@ int ndisc_rcv(struct sk_buff *skb)  static int ndisc_netdev_event(struct notifier_block *this, unsigned long event, void *ptr)  { -	struct net_device *dev = ptr; +	struct net_device *dev = netdev_notifier_info_to_dev(ptr);  	struct net *net = dev_net(dev);  	struct inet6_dev *idev;  	switch (event) {  	case NETDEV_CHANGEADDR:  		neigh_changeaddr(&nd_tbl, dev); -		fib6_run_gc(~0UL, net); +		fib6_run_gc(0, net, false);  		idev = in6_dev_get(dev);  		if (!idev)  			break; @@ -1585,7 +1586,7 @@ static int ndisc_netdev_event(struct notifier_block *this, unsigned long event,  		break;  	case NETDEV_DOWN:  		neigh_ifdown(&nd_tbl, dev); -		fib6_run_gc(~0UL, net); +		fib6_run_gc(0, net, false);  		break;  	case NETDEV_NOTIFY_PEERS:  		ndisc_send_unsol_na(dev);  | 
