diff options
Diffstat (limited to 'net/ipv6')
| -rw-r--r-- | net/ipv6/addrconf.c | 8 | ||||
| -rw-r--r-- | net/ipv6/af_inet6.c | 14 | ||||
| -rw-r--r-- | net/ipv6/ah6.c | 12 | ||||
| -rw-r--r-- | net/ipv6/anycast.c | 4 | ||||
| -rw-r--r-- | net/ipv6/datagram.c | 34 | ||||
| -rw-r--r-- | net/ipv6/exthdrs.c | 18 | ||||
| -rw-r--r-- | net/ipv6/fib6_rules.c | 2 | ||||
| -rw-r--r-- | net/ipv6/icmp.c | 18 | ||||
| -rw-r--r-- | net/ipv6/inet6_connection_sock.c | 12 | ||||
| -rw-r--r-- | net/ipv6/ip6_flowlabel.c | 2 | ||||
| -rw-r--r-- | net/ipv6/ip6_output.c | 18 | ||||
| -rw-r--r-- | net/ipv6/ip6_tunnel.c | 12 | ||||
| -rw-r--r-- | net/ipv6/ip6mr.c | 12 | ||||
| -rw-r--r-- | net/ipv6/ipv6_sockglue.c | 8 | ||||
| -rw-r--r-- | net/ipv6/mcast.c | 6 | ||||
| -rw-r--r-- | net/ipv6/mip6.c | 4 | ||||
| -rw-r--r-- | net/ipv6/ndisc.c | 6 | ||||
| -rw-r--r-- | net/ipv6/netfilter/ip6t_REJECT.c | 8 | ||||
| -rw-r--r-- | net/ipv6/raw.c | 10 | ||||
| -rw-r--r-- | net/ipv6/reassembly.c | 4 | ||||
| -rw-r--r-- | net/ipv6/route.c | 42 | ||||
| -rw-r--r-- | net/ipv6/sit.c | 4 | ||||
| -rw-r--r-- | net/ipv6/syncookies.c | 8 | ||||
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 46 | ||||
| -rw-r--r-- | net/ipv6/udp.c | 7 | ||||
| -rw-r--r-- | net/ipv6/xfrm6_mode_beet.c | 8 | ||||
| -rw-r--r-- | net/ipv6/xfrm6_mode_tunnel.c | 4 | ||||
| -rw-r--r-- | net/ipv6/xfrm6_output.c | 4 | ||||
| -rw-r--r-- | net/ipv6/xfrm6_policy.c | 4 | ||||
| -rw-r--r-- | net/ipv6/xfrm6_state.c | 4 | 
30 files changed, 169 insertions, 174 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index cf88df82e2c..58605172634 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -636,7 +636,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen,  		goto out;  	} -	ipv6_addr_copy(&ifa->addr, addr); +	ifa->addr = *addr;  	spin_lock_init(&ifa->lock);  	spin_lock_init(&ifa->state_lock); @@ -1228,7 +1228,7 @@ try_nextdev:  	if (!hiscore->ifa)  		return -EADDRNOTAVAIL; -	ipv6_addr_copy(saddr, &hiscore->ifa->addr); +	*saddr = hiscore->ifa->addr;  	in6_ifa_put(hiscore->ifa);  	return 0;  } @@ -1249,7 +1249,7 @@ int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,  		list_for_each_entry(ifp, &idev->addr_list, if_list) {  			if (ifp->scope == IFA_LINK &&  			    !(ifp->flags & banned_flags)) { -				ipv6_addr_copy(addr, &ifp->addr); +				*addr = ifp->addr;  				err = 0;  				break;  			} @@ -1700,7 +1700,7 @@ addrconf_prefix_route(struct in6_addr *pfx, int plen, struct net_device *dev,  		.fc_protocol = RTPROT_KERNEL,  	}; -	ipv6_addr_copy(&cfg.fc_dst, pfx); +	cfg.fc_dst = *pfx;  	/* Prevent useless cloning on PtP SIT.  	   This thing is done here expecting that the whole diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index ee3319487c4..7694c82e629 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c @@ -361,10 +361,10 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)  	inet->inet_rcv_saddr = v4addr;  	inet->inet_saddr = v4addr; -	ipv6_addr_copy(&np->rcv_saddr, &addr->sin6_addr); +	np->rcv_saddr = addr->sin6_addr;  	if (!(addr_type & IPV6_ADDR_MULTICAST)) -		ipv6_addr_copy(&np->saddr, &addr->sin6_addr); +		np->saddr = addr->sin6_addr;  	/* Make sure we are allowed to bind here. */  	if (sk->sk_prot->get_port(sk, snum)) { @@ -458,14 +458,14 @@ int inet6_getname(struct socket *sock, struct sockaddr *uaddr,  		    peer == 1)  			return -ENOTCONN;  		sin->sin6_port = inet->inet_dport; -		ipv6_addr_copy(&sin->sin6_addr, &np->daddr); +		sin->sin6_addr = np->daddr;  		if (np->sndflow)  			sin->sin6_flowinfo = np->flow_label;  	} else {  		if (ipv6_addr_any(&np->rcv_saddr)) -			ipv6_addr_copy(&sin->sin6_addr, &np->saddr); +			sin->sin6_addr = np->saddr;  		else -			ipv6_addr_copy(&sin->sin6_addr, &np->rcv_saddr); +			sin->sin6_addr = np->rcv_saddr;  		sin->sin6_port = inet->inet_sport;  	} @@ -660,8 +660,8 @@ int inet6_sk_rebuild_header(struct sock *sk)  		memset(&fl6, 0, sizeof(fl6));  		fl6.flowi6_proto = sk->sk_protocol; -		ipv6_addr_copy(&fl6.daddr, &np->daddr); -		ipv6_addr_copy(&fl6.saddr, &np->saddr); +		fl6.daddr = np->daddr; +		fl6.saddr = np->saddr;  		fl6.flowlabel = np->flow_label;  		fl6.flowi6_oif = sk->sk_bound_dev_if;  		fl6.flowi6_mark = sk->sk_mark; diff --git a/net/ipv6/ah6.c b/net/ipv6/ah6.c index 4c0f894d084..2ae79dbeec2 100644 --- a/net/ipv6/ah6.c +++ b/net/ipv6/ah6.c @@ -193,9 +193,9 @@ static void ipv6_rearrange_destopt(struct ipv6hdr *iph, struct ipv6_opt_hdr *des  						printk(KERN_WARNING "destopt hao: invalid header length: %u\n", hao->length);  					goto bad;  				} -				ipv6_addr_copy(&final_addr, &hao->addr); -				ipv6_addr_copy(&hao->addr, &iph->saddr); -				ipv6_addr_copy(&iph->saddr, &final_addr); +				final_addr = hao->addr; +				hao->addr = iph->saddr; +				iph->saddr = final_addr;  			}  			break;  		} @@ -241,13 +241,13 @@ static void ipv6_rearrange_rthdr(struct ipv6hdr *iph, struct ipv6_rt_hdr *rthdr)  	segments = rthdr->hdrlen >> 1;  	addrs = ((struct rt0_hdr *)rthdr)->addr; -	ipv6_addr_copy(&final_addr, addrs + segments - 1); +	final_addr = addrs[segments - 1];  	addrs += segments - segments_left;  	memmove(addrs + 1, addrs, (segments_left - 1) * sizeof(*addrs)); -	ipv6_addr_copy(addrs, &iph->daddr); -	ipv6_addr_copy(&iph->daddr, &final_addr); +	addrs[0] = iph->daddr; +	iph->daddr = final_addr;  }  static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len, int dir) diff --git a/net/ipv6/anycast.c b/net/ipv6/anycast.c index 674255f5e6b..fc1cdcd7041 100644 --- a/net/ipv6/anycast.c +++ b/net/ipv6/anycast.c @@ -75,7 +75,7 @@ int ipv6_sock_ac_join(struct sock *sk, int ifindex, const struct in6_addr *addr)  	if (pac == NULL)  		return -ENOMEM;  	pac->acl_next = NULL; -	ipv6_addr_copy(&pac->acl_addr, addr); +	pac->acl_addr = *addr;  	rcu_read_lock();  	if (ifindex == 0) { @@ -296,7 +296,7 @@ int ipv6_dev_ac_inc(struct net_device *dev, const struct in6_addr *addr)  		goto out;  	} -	ipv6_addr_copy(&aca->aca_addr, addr); +	aca->aca_addr = *addr;  	aca->aca_idev = idev;  	aca->aca_rt = rt;  	aca->aca_users = 1; diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c index 83037af4fa7..ae08aee1773 100644 --- a/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c @@ -71,7 +71,7 @@ int ip6_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)  			flowlabel = fl6_sock_lookup(sk, fl6.flowlabel);  			if (flowlabel == NULL)  				return -EINVAL; -			ipv6_addr_copy(&usin->sin6_addr, &flowlabel->dst); +			usin->sin6_addr = flowlabel->dst;  		}  	} @@ -143,7 +143,7 @@ ipv4_connected:  		}  	} -	ipv6_addr_copy(&np->daddr, daddr); +	np->daddr = *daddr;  	np->flow_label = fl6.flowlabel;  	inet->inet_dport = usin->sin6_port; @@ -154,8 +154,8 @@ ipv4_connected:  	 */  	fl6.flowi6_proto = sk->sk_protocol; -	ipv6_addr_copy(&fl6.daddr, &np->daddr); -	ipv6_addr_copy(&fl6.saddr, &np->saddr); +	fl6.daddr = np->daddr; +	fl6.saddr = np->saddr;  	fl6.flowi6_oif = sk->sk_bound_dev_if;  	fl6.flowi6_mark = sk->sk_mark;  	fl6.fl6_dport = inet->inet_dport; @@ -179,10 +179,10 @@ ipv4_connected:  	/* source address lookup done in ip6_dst_lookup */  	if (ipv6_addr_any(&np->saddr)) -		ipv6_addr_copy(&np->saddr, &fl6.saddr); +		np->saddr = fl6.saddr;  	if (ipv6_addr_any(&np->rcv_saddr)) { -		ipv6_addr_copy(&np->rcv_saddr, &fl6.saddr); +		np->rcv_saddr = fl6.saddr;  		inet->inet_rcv_saddr = LOOPBACK4_IPV6;  		if (sk->sk_prot->rehash)  			sk->sk_prot->rehash(sk); @@ -257,7 +257,7 @@ void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info)  	skb_put(skb, sizeof(struct ipv6hdr));  	skb_reset_network_header(skb);  	iph = ipv6_hdr(skb); -	ipv6_addr_copy(&iph->daddr, &fl6->daddr); +	iph->daddr = fl6->daddr;  	serr = SKB_EXT_ERR(skb);  	serr->ee.ee_errno = err; @@ -294,7 +294,7 @@ void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu)  	skb_put(skb, sizeof(struct ipv6hdr));  	skb_reset_network_header(skb);  	iph = ipv6_hdr(skb); -	ipv6_addr_copy(&iph->daddr, &fl6->daddr); +	iph->daddr = fl6->daddr;  	mtu_info = IP6CBMTU(skb); @@ -303,7 +303,7 @@ void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu)  	mtu_info->ip6m_addr.sin6_port = 0;  	mtu_info->ip6m_addr.sin6_flowinfo = 0;  	mtu_info->ip6m_addr.sin6_scope_id = fl6->flowi6_oif; -	ipv6_addr_copy(&mtu_info->ip6m_addr.sin6_addr, &ipv6_hdr(skb)->daddr); +	mtu_info->ip6m_addr.sin6_addr = ipv6_hdr(skb)->daddr;  	__skb_pull(skb, skb_tail_pointer(skb) - skb->data);  	skb_reset_transport_header(skb); @@ -354,8 +354,8 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)  		sin->sin6_port = serr->port;  		sin->sin6_scope_id = 0;  		if (skb->protocol == htons(ETH_P_IPV6)) { -			ipv6_addr_copy(&sin->sin6_addr, -				  (struct in6_addr *)(nh + serr->addr_offset)); +			sin->sin6_addr = +				*(struct in6_addr *)(nh + serr->addr_offset);  			if (np->sndflow)  				sin->sin6_flowinfo =  					(*(__be32 *)(nh + serr->addr_offset - 24) & @@ -376,7 +376,7 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)  		sin->sin6_flowinfo = 0;  		sin->sin6_scope_id = 0;  		if (skb->protocol == htons(ETH_P_IPV6)) { -			ipv6_addr_copy(&sin->sin6_addr, &ipv6_hdr(skb)->saddr); +			sin->sin6_addr = ipv6_hdr(skb)->saddr;  			if (np->rxopt.all)  				datagram_recv_ctl(sk, msg, skb);  			if (ipv6_addr_type(&sin->sin6_addr) & IPV6_ADDR_LINKLOCAL) @@ -451,7 +451,7 @@ int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len)  		sin->sin6_flowinfo = 0;  		sin->sin6_port = 0;  		sin->sin6_scope_id = mtu_info.ip6m_addr.sin6_scope_id; -		ipv6_addr_copy(&sin->sin6_addr, &mtu_info.ip6m_addr.sin6_addr); +		sin->sin6_addr = mtu_info.ip6m_addr.sin6_addr;  	}  	put_cmsg(msg, SOL_IPV6, IPV6_PATHMTU, sizeof(mtu_info), &mtu_info); @@ -475,7 +475,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)  		struct in6_pktinfo src_info;  		src_info.ipi6_ifindex = opt->iif; -		ipv6_addr_copy(&src_info.ipi6_addr, &ipv6_hdr(skb)->daddr); +		src_info.ipi6_addr = ipv6_hdr(skb)->daddr;  		put_cmsg(msg, SOL_IPV6, IPV6_PKTINFO, sizeof(src_info), &src_info);  	} @@ -550,7 +550,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)  		struct in6_pktinfo src_info;  		src_info.ipi6_ifindex = opt->iif; -		ipv6_addr_copy(&src_info.ipi6_addr, &ipv6_hdr(skb)->daddr); +		src_info.ipi6_addr = ipv6_hdr(skb)->daddr;  		put_cmsg(msg, SOL_IPV6, IPV6_2292PKTINFO, sizeof(src_info), &src_info);  	}  	if (np->rxopt.bits.rxohlim) { @@ -584,7 +584,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)  			 */  			sin6.sin6_family = AF_INET6; -			ipv6_addr_copy(&sin6.sin6_addr, &ipv6_hdr(skb)->daddr); +			sin6.sin6_addr = ipv6_hdr(skb)->daddr;  			sin6.sin6_port = ports[1];  			sin6.sin6_flowinfo = 0;  			sin6.sin6_scope_id = 0; @@ -659,7 +659,7 @@ int datagram_send_ctl(struct net *net, struct sock *sk,  						   strict ? dev : NULL, 0))  					err = -EINVAL;  				else -					ipv6_addr_copy(&fl6->saddr, &src_info->ipi6_addr); +					fl6->saddr = src_info->ipi6_addr;  			}  			rcu_read_unlock(); diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c index bf22a225f42..3d641b6e9b0 100644 --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c @@ -243,9 +243,9 @@ static int ipv6_dest_hao(struct sk_buff *skb, int optoff)  	if (skb->ip_summed == CHECKSUM_COMPLETE)  		skb->ip_summed = CHECKSUM_NONE; -	ipv6_addr_copy(&tmp_addr, &ipv6h->saddr); -	ipv6_addr_copy(&ipv6h->saddr, &hao->addr); -	ipv6_addr_copy(&hao->addr, &tmp_addr); +	tmp_addr = ipv6h->saddr; +	ipv6h->saddr = hao->addr; +	hao->addr = tmp_addr;  	if (skb->tstamp.tv64 == 0)  		__net_timestamp(skb); @@ -461,9 +461,9 @@ looped_back:  		return -1;  	} -	ipv6_addr_copy(&daddr, addr); -	ipv6_addr_copy(addr, &ipv6_hdr(skb)->daddr); -	ipv6_addr_copy(&ipv6_hdr(skb)->daddr, &daddr); +	daddr = *addr; +	*addr = ipv6_hdr(skb)->daddr; +	ipv6_hdr(skb)->daddr = daddr;  	skb_dst_drop(skb);  	ip6_route_input(skb); @@ -690,7 +690,7 @@ static void ipv6_push_rthdr(struct sk_buff *skb, u8 *proto,  		memcpy(phdr->addr, ihdr->addr + 1,  		       (hops - 1) * sizeof(struct in6_addr)); -	ipv6_addr_copy(phdr->addr + (hops - 1), *addr_p); +	phdr->addr[hops - 1] = **addr_p;  	*addr_p = ihdr->addr;  	phdr->rt_hdr.nexthdr = *proto; @@ -888,8 +888,8 @@ struct in6_addr *fl6_update_dst(struct flowi6 *fl6,  	if (!opt || !opt->srcrt)  		return NULL; -	ipv6_addr_copy(orig, &fl6->daddr); -	ipv6_addr_copy(&fl6->daddr, ((struct rt0_hdr *)opt->srcrt)->addr); +	*orig = fl6->daddr; +	fl6->daddr = *((struct rt0_hdr *)opt->srcrt)->addr;  	return orig;  } diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c index 295571576f8..b6c57315206 100644 --- a/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c @@ -96,7 +96,7 @@ static int fib6_rule_action(struct fib_rule *rule, struct flowi *flp,  			if (!ipv6_prefix_equal(&saddr, &r->src.addr,  					       r->src.plen))  				goto again; -			ipv6_addr_copy(&flp6->saddr, &saddr); +			flp6->saddr = saddr;  		}  		goto out;  	} diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index 90868fb4275..9e2bdccf914 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c @@ -290,9 +290,9 @@ static void mip6_addr_swap(struct sk_buff *skb)  		if (likely(off >= 0)) {  			hao = (struct ipv6_destopt_hao *)  					(skb_network_header(skb) + off); -			ipv6_addr_copy(&tmp, &iph->saddr); -			ipv6_addr_copy(&iph->saddr, &hao->addr); -			ipv6_addr_copy(&hao->addr, &tmp); +			tmp = iph->saddr; +			iph->saddr = hao->addr; +			hao->addr = tmp;  		}  	}  } @@ -444,9 +444,9 @@ void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)  	memset(&fl6, 0, sizeof(fl6));  	fl6.flowi6_proto = IPPROTO_ICMPV6; -	ipv6_addr_copy(&fl6.daddr, &hdr->saddr); +	fl6.daddr = hdr->saddr;  	if (saddr) -		ipv6_addr_copy(&fl6.saddr, saddr); +		fl6.saddr = *saddr;  	fl6.flowi6_oif = iif;  	fl6.fl6_icmp_type = type;  	fl6.fl6_icmp_code = code; @@ -538,9 +538,9 @@ static void icmpv6_echo_reply(struct sk_buff *skb)  	memset(&fl6, 0, sizeof(fl6));  	fl6.flowi6_proto = IPPROTO_ICMPV6; -	ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->saddr); +	fl6.daddr = ipv6_hdr(skb)->saddr;  	if (saddr) -		ipv6_addr_copy(&fl6.saddr, saddr); +		fl6.saddr = *saddr;  	fl6.flowi6_oif = skb->dev->ifindex;  	fl6.fl6_icmp_type = ICMPV6_ECHO_REPLY;  	security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); @@ -786,8 +786,8 @@ void icmpv6_flow_init(struct sock *sk, struct flowi6 *fl6,  		      int oif)  {  	memset(fl6, 0, sizeof(*fl6)); -	ipv6_addr_copy(&fl6->saddr, saddr); -	ipv6_addr_copy(&fl6->daddr, daddr); +	fl6->saddr = *saddr; +	fl6->daddr = *daddr;  	fl6->flowi6_proto 	= IPPROTO_ICMPV6;  	fl6->fl6_icmp_type	= type;  	fl6->fl6_icmp_code	= 0; diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c index fee46d5a2f1..4d7bfb321c7 100644 --- a/net/ipv6/inet6_connection_sock.c +++ b/net/ipv6/inet6_connection_sock.c @@ -65,9 +65,9 @@ struct dst_entry *inet6_csk_route_req(struct sock *sk,  	memset(&fl6, 0, sizeof(fl6));  	fl6.flowi6_proto = IPPROTO_TCP; -	ipv6_addr_copy(&fl6.daddr, &treq->rmt_addr); +	fl6.daddr = treq->rmt_addr;  	final_p = fl6_update_dst(&fl6, np->opt, &final); -	ipv6_addr_copy(&fl6.saddr, &treq->loc_addr); +	fl6.saddr = treq->loc_addr;  	fl6.flowi6_oif = sk->sk_bound_dev_if;  	fl6.flowi6_mark = sk->sk_mark;  	fl6.fl6_dport = inet_rsk(req)->rmt_port; @@ -157,7 +157,7 @@ void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr * uaddr)  	struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) uaddr;  	sin6->sin6_family = AF_INET6; -	ipv6_addr_copy(&sin6->sin6_addr, &np->daddr); +	sin6->sin6_addr = np->daddr;  	sin6->sin6_port	= inet_sk(sk)->inet_dport;  	/* We do not store received flowlabel for TCP */  	sin6->sin6_flowinfo = 0; @@ -215,8 +215,8 @@ int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl_unused)  	memset(&fl6, 0, sizeof(fl6));  	fl6.flowi6_proto = sk->sk_protocol; -	ipv6_addr_copy(&fl6.daddr, &np->daddr); -	ipv6_addr_copy(&fl6.saddr, &np->saddr); +	fl6.daddr = np->daddr; +	fl6.saddr = np->saddr;  	fl6.flowlabel = np->flow_label;  	IP6_ECN_flow_xmit(sk, fl6.flowlabel);  	fl6.flowi6_oif = sk->sk_bound_dev_if; @@ -246,7 +246,7 @@ int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl_unused)  	skb_dst_set_noref(skb, dst);  	/* Restore final destination back after routing done */ -	ipv6_addr_copy(&fl6.daddr, &np->daddr); +	fl6.daddr = np->daddr;  	res = ip6_xmit(sk, skb, &fl6, np->opt, np->tclass);  	rcu_read_unlock(); diff --git a/net/ipv6/ip6_flowlabel.c b/net/ipv6/ip6_flowlabel.c index 4566dbd916d..b7867a1215b 100644 --- a/net/ipv6/ip6_flowlabel.c +++ b/net/ipv6/ip6_flowlabel.c @@ -386,7 +386,7 @@ fl_create(struct net *net, struct sock *sk, struct in6_flowlabel_req *freq,  		err = -EINVAL;  		goto done;  	} -	ipv6_addr_copy(&fl->dst, &freq->flr_dst); +	fl->dst = freq->flr_dst;  	atomic_set(&fl->users, 1);  	switch (fl->share) {  	case IPV6_FL_S_EXCL: diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 68ef97f353b..a24e1555784 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -238,8 +238,8 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,  	hdr->nexthdr = proto;  	hdr->hop_limit = hlimit; -	ipv6_addr_copy(&hdr->saddr, &fl6->saddr); -	ipv6_addr_copy(&hdr->daddr, first_hop); +	hdr->saddr = fl6->saddr; +	hdr->daddr = *first_hop;  	skb->priority = sk->sk_priority;  	skb->mark = sk->sk_mark; @@ -290,8 +290,8 @@ int ip6_nd_hdr(struct sock *sk, struct sk_buff *skb, struct net_device *dev,  	hdr->nexthdr = proto;  	hdr->hop_limit = np->hop_limit; -	ipv6_addr_copy(&hdr->saddr, saddr); -	ipv6_addr_copy(&hdr->daddr, daddr); +	hdr->saddr = *saddr; +	hdr->daddr = *daddr;  	return 0;  } @@ -1063,7 +1063,7 @@ struct dst_entry *ip6_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6,  	if (err)  		return ERR_PTR(err);  	if (final_dst) -		ipv6_addr_copy(&fl6->daddr, final_dst); +		fl6->daddr = *final_dst;  	if (can_sleep)  		fl6->flowi6_flags |= FLOWI_FLAG_CAN_SLEEP; @@ -1099,7 +1099,7 @@ struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6,  	if (err)  		return ERR_PTR(err);  	if (final_dst) -		ipv6_addr_copy(&fl6->daddr, final_dst); +		fl6->daddr = *final_dst;  	if (can_sleep)  		fl6->flowi6_flags |= FLOWI_FLAG_CAN_SLEEP; @@ -1592,7 +1592,7 @@ int ip6_push_pending_frames(struct sock *sk)  	if (np->pmtudisc < IPV6_PMTUDISC_DO)  		skb->local_df = 1; -	ipv6_addr_copy(final_dst, &fl6->daddr); +	*final_dst = fl6->daddr;  	__skb_pull(skb, skb_network_header_len(skb));  	if (opt && opt->opt_flen)  		ipv6_push_frag_opts(skb, opt, &proto); @@ -1608,8 +1608,8 @@ int ip6_push_pending_frames(struct sock *sk)  	hdr->hop_limit = np->cork.hop_limit;  	hdr->nexthdr = proto; -	ipv6_addr_copy(&hdr->saddr, &fl6->saddr); -	ipv6_addr_copy(&hdr->daddr, final_dst); +	hdr->saddr = fl6->saddr; +	hdr->daddr = *final_dst;  	skb->priority = sk->sk_priority;  	skb->mark = sk->sk_mark; diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 83f0e31c5fb..f5f98f558ac 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -979,8 +979,8 @@ static int ip6_tnl_xmit2(struct sk_buff *skb,  	ipv6_change_dsfield(ipv6h, ~INET_ECN_MASK, dsfield);  	ipv6h->hop_limit = t->parms.hop_limit;  	ipv6h->nexthdr = proto; -	ipv6_addr_copy(&ipv6h->saddr, &fl6->saddr); -	ipv6_addr_copy(&ipv6h->daddr, &fl6->daddr); +	ipv6h->saddr = fl6->saddr; +	ipv6h->daddr = fl6->daddr;  	nf_reset(skb);  	pkt_len = skb->len;  	err = ip6_local_out(skb); @@ -1155,8 +1155,8 @@ static void ip6_tnl_link_config(struct ip6_tnl *t)  	memcpy(dev->broadcast, &p->raddr, sizeof(struct in6_addr));  	/* Set up flowi template */ -	ipv6_addr_copy(&fl6->saddr, &p->laddr); -	ipv6_addr_copy(&fl6->daddr, &p->raddr); +	fl6->saddr = p->laddr; +	fl6->daddr = p->raddr;  	fl6->flowi6_oif = p->link;  	fl6->flowlabel = 0; @@ -1212,8 +1212,8 @@ static void ip6_tnl_link_config(struct ip6_tnl *t)  static int  ip6_tnl_change(struct ip6_tnl *t, struct ip6_tnl_parm *p)  { -	ipv6_addr_copy(&t->parms.laddr, &p->laddr); -	ipv6_addr_copy(&t->parms.raddr, &p->raddr); +	t->parms.laddr = p->laddr; +	t->parms.raddr = p->raddr;  	t->parms.flags = p->flags;  	t->parms.hop_limit = p->hop_limit;  	t->parms.encap_limit = p->encap_limit; diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index 449a9185b8f..c7e95c8c579 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c @@ -1105,8 +1105,8 @@ static int ip6mr_cache_report(struct mr6_table *mrt, struct sk_buff *pkt,  		msg->im6_msgtype = MRT6MSG_WHOLEPKT;  		msg->im6_mif = mrt->mroute_reg_vif_num;  		msg->im6_pad = 0; -		ipv6_addr_copy(&msg->im6_src, &ipv6_hdr(pkt)->saddr); -		ipv6_addr_copy(&msg->im6_dst, &ipv6_hdr(pkt)->daddr); +		msg->im6_src = ipv6_hdr(pkt)->saddr; +		msg->im6_dst = ipv6_hdr(pkt)->daddr;  		skb->ip_summed = CHECKSUM_UNNECESSARY;  	} else @@ -1131,8 +1131,8 @@ static int ip6mr_cache_report(struct mr6_table *mrt, struct sk_buff *pkt,  	msg->im6_msgtype = assert;  	msg->im6_mif = mifi;  	msg->im6_pad = 0; -	ipv6_addr_copy(&msg->im6_src, &ipv6_hdr(pkt)->saddr); -	ipv6_addr_copy(&msg->im6_dst, &ipv6_hdr(pkt)->daddr); +	msg->im6_src = ipv6_hdr(pkt)->saddr; +	msg->im6_dst = ipv6_hdr(pkt)->daddr;  	skb_dst_set(skb, dst_clone(skb_dst(pkt)));  	skb->ip_summed = CHECKSUM_UNNECESSARY; @@ -2181,8 +2181,8 @@ int ip6mr_get_route(struct net *net,  		iph->payload_len = 0;  		iph->nexthdr = IPPROTO_NONE;  		iph->hop_limit = 0; -		ipv6_addr_copy(&iph->saddr, &rt->rt6i_src.addr); -		ipv6_addr_copy(&iph->daddr, &rt->rt6i_dst.addr); +		iph->saddr = rt->rt6i_src.addr; +		iph->daddr = rt->rt6i_dst.addr;  		err = ip6mr_cache_unresolved(mrt, vif, skb2);  		read_unlock(&mrt_lock); diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index c99e3ee9781..29993b7079a 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c @@ -435,7 +435,7 @@ sticky_done:  			goto e_inval;  		np->sticky_pktinfo.ipi6_ifindex = pkt.ipi6_ifindex; -		ipv6_addr_copy(&np->sticky_pktinfo.ipi6_addr, &pkt.ipi6_addr); +		np->sticky_pktinfo.ipi6_addr = pkt.ipi6_addr;  		retv = 0;  		break;  	} @@ -980,8 +980,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,  				struct in6_pktinfo src_info;  				src_info.ipi6_ifindex = np->mcast_oif ? np->mcast_oif :  					np->sticky_pktinfo.ipi6_ifindex; -				np->mcast_oif? ipv6_addr_copy(&src_info.ipi6_addr, &np->daddr) : -					ipv6_addr_copy(&src_info.ipi6_addr, &(np->sticky_pktinfo.ipi6_addr)); +				src_info.ipi6_addr = np->mcast_oif ? np->daddr : np->sticky_pktinfo.ipi6_addr;  				put_cmsg(&msg, SOL_IPV6, IPV6_PKTINFO, sizeof(src_info), &src_info);  			}  			if (np->rxopt.bits.rxhlim) { @@ -992,8 +991,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,  				struct in6_pktinfo src_info;  				src_info.ipi6_ifindex = np->mcast_oif ? np->mcast_oif :  					np->sticky_pktinfo.ipi6_ifindex; -				np->mcast_oif? ipv6_addr_copy(&src_info.ipi6_addr, &np->daddr) : -					ipv6_addr_copy(&src_info.ipi6_addr, &(np->sticky_pktinfo.ipi6_addr)); +				src_info.ipi6_addr = np->mcast_oif ? np->daddr : np->sticky_pktinfo.ipi6_addr;  				put_cmsg(&msg, SOL_IPV6, IPV6_2292PKTINFO, sizeof(src_info), &src_info);  			}  			if (np->rxopt.bits.rxohlim) { diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index 7b94bebb73b..6cc4d1fb8c1 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -155,7 +155,7 @@ int ipv6_sock_mc_join(struct sock *sk, int ifindex, const struct in6_addr *addr)  		return -ENOMEM;  	mc_lst->next = NULL; -	ipv6_addr_copy(&mc_lst->addr, addr); +	mc_lst->addr = *addr;  	rcu_read_lock();  	if (ifindex == 0) { @@ -858,7 +858,7 @@ int ipv6_dev_mc_inc(struct net_device *dev, const struct in6_addr *addr)  	setup_timer(&mc->mca_timer, igmp6_timer_handler, (unsigned long)mc); -	ipv6_addr_copy(&mc->mca_addr, addr); +	mc->mca_addr = *addr;  	mc->idev = idev; /* (reference taken) */  	mc->mca_users = 1;  	/* mca_stamp should be updated upon changes */ @@ -1776,7 +1776,7 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)  	hdr = (struct mld_msg *) skb_put(skb, sizeof(struct mld_msg));  	memset(hdr, 0, sizeof(struct mld_msg));  	hdr->mld_type = type; -	ipv6_addr_copy(&hdr->mld_mca, addr); +	hdr->mld_mca = *addr;  	hdr->mld_cksum = csum_ipv6_magic(saddr, snd_addr, len,  					 IPPROTO_ICMPV6, diff --git a/net/ipv6/mip6.c b/net/ipv6/mip6.c index 43242e6e610..7e1e0fbfef2 100644 --- a/net/ipv6/mip6.c +++ b/net/ipv6/mip6.c @@ -195,8 +195,8 @@ static inline int mip6_report_rl_allow(struct timeval *stamp,  		mip6_report_rl.stamp.tv_sec = stamp->tv_sec;  		mip6_report_rl.stamp.tv_usec = stamp->tv_usec;  		mip6_report_rl.iif = iif; -		ipv6_addr_copy(&mip6_report_rl.src, src); -		ipv6_addr_copy(&mip6_report_rl.dst, dst); +		mip6_report_rl.src = *src; +		mip6_report_rl.dst = *dst;  		allow = 1;  	}  	spin_unlock_bh(&mip6_report_rl.lock); diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index d699ddcad4c..a4769881c5b 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -481,7 +481,7 @@ struct sk_buff *ndisc_build_skb(struct net_device *dev,  	opt = skb_transport_header(skb) + sizeof(struct icmp6hdr);  	if (target) { -		ipv6_addr_copy((struct in6_addr *)opt, target); +		*(struct in6_addr *)opt = *target;  		opt += sizeof(*target);  	} @@ -1622,9 +1622,9 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh,  	 */  	addrp = (struct in6_addr *)(icmph + 1); -	ipv6_addr_copy(addrp, target); +	*addrp = *target;  	addrp++; -	ipv6_addr_copy(addrp, &ipv6_hdr(skb)->daddr); +	*addrp = ipv6_hdr(skb)->daddr;  	opt = (u8*) (addrp + 1); diff --git a/net/ipv6/netfilter/ip6t_REJECT.c b/net/ipv6/netfilter/ip6t_REJECT.c index a5a4c5dd539..b5a2aa58a03 100644 --- a/net/ipv6/netfilter/ip6t_REJECT.c +++ b/net/ipv6/netfilter/ip6t_REJECT.c @@ -93,8 +93,8 @@ static void send_reset(struct net *net, struct sk_buff *oldskb)  	memset(&fl6, 0, sizeof(fl6));  	fl6.flowi6_proto = IPPROTO_TCP; -	ipv6_addr_copy(&fl6.saddr, &oip6h->daddr); -	ipv6_addr_copy(&fl6.daddr, &oip6h->saddr); +	fl6.saddr = oip6h->daddr; +	fl6.daddr = oip6h->saddr;  	fl6.fl6_sport = otcph.dest;  	fl6.fl6_dport = otcph.source;  	security_skb_classify_flow(oldskb, flowi6_to_flowi(&fl6)); @@ -129,8 +129,8 @@ static void send_reset(struct net *net, struct sk_buff *oldskb)  	*(__be32 *)ip6h =  htonl(0x60000000 | (tclass << 20));  	ip6h->hop_limit = ip6_dst_hoplimit(dst);  	ip6h->nexthdr = IPPROTO_TCP; -	ipv6_addr_copy(&ip6h->saddr, &oip6h->daddr); -	ipv6_addr_copy(&ip6h->daddr, &oip6h->saddr); +	ip6h->saddr = oip6h->daddr; +	ip6h->daddr = oip6h->saddr;  	tcph = (struct tcphdr *)skb_put(nskb, sizeof(struct tcphdr));  	/* Truncate to length (no data) */ diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index a1aa869a9ce..a4894f4f194 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -299,9 +299,9 @@ static int rawv6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)  	}  	inet->inet_rcv_saddr = inet->inet_saddr = v4addr; -	ipv6_addr_copy(&np->rcv_saddr, &addr->sin6_addr); +	np->rcv_saddr = addr->sin6_addr;  	if (!(addr_type & IPV6_ADDR_MULTICAST)) -		ipv6_addr_copy(&np->saddr, &addr->sin6_addr); +		np->saddr = addr->sin6_addr;  	err = 0;  out_unlock:  	rcu_read_unlock(); @@ -495,7 +495,7 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,  	if (sin6) {  		sin6->sin6_family = AF_INET6;  		sin6->sin6_port = 0; -		ipv6_addr_copy(&sin6->sin6_addr, &ipv6_hdr(skb)->saddr); +		sin6->sin6_addr = ipv6_hdr(skb)->saddr;  		sin6->sin6_flowinfo = 0;  		sin6->sin6_scope_id = 0;  		if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL) @@ -846,11 +846,11 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,  		goto out;  	if (!ipv6_addr_any(daddr)) -		ipv6_addr_copy(&fl6.daddr, daddr); +		fl6.daddr = *daddr;  	else  		fl6.daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */  	if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr)) -		ipv6_addr_copy(&fl6.saddr, &np->saddr); +		fl6.saddr = np->saddr;  	final_p = fl6_update_dst(&fl6, opt, &final); diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c index dfb164e9051..b69fae76a6f 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c @@ -153,8 +153,8 @@ void ip6_frag_init(struct inet_frag_queue *q, void *a)  	fq->id = arg->id;  	fq->user = arg->user; -	ipv6_addr_copy(&fq->saddr, arg->src); -	ipv6_addr_copy(&fq->daddr, arg->dst); +	fq->saddr = *arg->src; +	fq->daddr = *arg->dst;  }  EXPORT_SYMBOL(ip6_frag_init); diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 05c89be04c9..2897403fdaf 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -729,14 +729,14 @@ static struct rt6_info *rt6_alloc_cow(const struct rt6_info *ort,  			if (rt->rt6i_dst.plen != 128 &&  			    ipv6_addr_equal(&ort->rt6i_dst.addr, daddr))  				rt->rt6i_flags |= RTF_ANYCAST; -			ipv6_addr_copy(&rt->rt6i_gateway, daddr); +			rt->rt6i_gateway = *daddr;  		}  		rt->rt6i_flags |= RTF_CACHE;  #ifdef CONFIG_IPV6_SUBTREES  		if (rt->rt6i_src.plen && saddr) { -			ipv6_addr_copy(&rt->rt6i_src.addr, saddr); +			rt->rt6i_src.addr = *saddr;  			rt->rt6i_src.plen = 128;  		}  #endif @@ -932,7 +932,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net, struct dst_entry *dst_ori  			in6_dev_hold(rt->rt6i_idev);  		rt->rt6i_expires = 0; -		ipv6_addr_copy(&rt->rt6i_gateway, &ort->rt6i_gateway); +		rt->rt6i_gateway = ort->rt6i_gateway;  		rt->rt6i_flags = ort->rt6i_flags & ~RTF_EXPIRES;  		rt->rt6i_metric = 0; @@ -1087,7 +1087,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,  	rt->dst.output  = ip6_output;  	dst_set_neighbour(&rt->dst, neigh);  	atomic_set(&rt->dst.__refcnt, 1); -	ipv6_addr_copy(&rt->rt6i_dst.addr, addr); +	rt->rt6i_dst.addr = *addr;  	rt->rt6i_dst.plen = 128;  	rt->rt6i_idev     = idev;  	dst_metric_set(&rt->dst, RTAX_HOPLIMIT, 255); @@ -1324,7 +1324,7 @@ int ip6_route_add(struct fib6_config *cfg)  		int gwa_type;  		gw_addr = &cfg->fc_gateway; -		ipv6_addr_copy(&rt->rt6i_gateway, gw_addr); +		rt->rt6i_gateway = *gw_addr;  		gwa_type = ipv6_addr_type(gw_addr);  		if (gwa_type != (IPV6_ADDR_LINKLOCAL|IPV6_ADDR_UNICAST)) { @@ -1378,7 +1378,7 @@ int ip6_route_add(struct fib6_config *cfg)  			err = -EINVAL;  			goto out;  		} -		ipv6_addr_copy(&rt->rt6i_prefsrc.addr, &cfg->fc_prefsrc); +		rt->rt6i_prefsrc.addr = cfg->fc_prefsrc;  		rt->rt6i_prefsrc.plen = 128;  	} else  		rt->rt6i_prefsrc.plen = 0; @@ -1575,7 +1575,7 @@ static struct rt6_info *ip6_route_redirect(const struct in6_addr *dest,  		},  	}; -	ipv6_addr_copy(&rdfl.gateway, gateway); +	rdfl.gateway = *gateway;  	if (rt6_need_strict(dest))  		flags |= RT6_LOOKUP_F_IFACE; @@ -1631,7 +1631,7 @@ void rt6_redirect(const struct in6_addr *dest, const struct in6_addr *src,  	if (on_link)  		nrt->rt6i_flags &= ~RTF_GATEWAY; -	ipv6_addr_copy(&nrt->rt6i_gateway, (struct in6_addr*)neigh->primary_key); +	nrt->rt6i_gateway = *(struct in6_addr *)neigh->primary_key;  	dst_set_neighbour(&nrt->dst, neigh_clone(neigh));  	if (ip6_ins_rt(nrt)) @@ -1777,7 +1777,7 @@ static struct rt6_info *ip6_rt_copy(const struct rt6_info *ort,  		rt->dst.output = ort->dst.output;  		rt->dst.flags |= DST_HOST; -		ipv6_addr_copy(&rt->rt6i_dst.addr, dest); +		rt->rt6i_dst.addr = *dest;  		rt->rt6i_dst.plen = 128;  		dst_copy_metrics(&rt->dst, &ort->dst);  		rt->dst.error = ort->dst.error; @@ -1787,7 +1787,7 @@ static struct rt6_info *ip6_rt_copy(const struct rt6_info *ort,  		rt->dst.lastuse = jiffies;  		rt->rt6i_expires = 0; -		ipv6_addr_copy(&rt->rt6i_gateway, &ort->rt6i_gateway); +		rt->rt6i_gateway = ort->rt6i_gateway;  		rt->rt6i_flags = ort->rt6i_flags & ~RTF_EXPIRES;  		rt->rt6i_metric = 0; @@ -1850,8 +1850,8 @@ static struct rt6_info *rt6_add_route_info(struct net *net,  		.fc_nlinfo.nl_net = net,  	}; -	ipv6_addr_copy(&cfg.fc_dst, prefix); -	ipv6_addr_copy(&cfg.fc_gateway, gwaddr); +	cfg.fc_dst = *prefix; +	cfg.fc_gateway = *gwaddr;  	/* We should treat it as a default route if prefix length is 0. */  	if (!prefixlen) @@ -1900,7 +1900,7 @@ struct rt6_info *rt6_add_dflt_router(const struct in6_addr *gwaddr,  		.fc_nlinfo.nl_net = dev_net(dev),  	}; -	ipv6_addr_copy(&cfg.fc_gateway, gwaddr); +	cfg.fc_gateway = *gwaddr;  	ip6_route_add(&cfg); @@ -1946,9 +1946,9 @@ static void rtmsg_to_fib6_config(struct net *net,  	cfg->fc_nlinfo.nl_net = net; -	ipv6_addr_copy(&cfg->fc_dst, &rtmsg->rtmsg_dst); -	ipv6_addr_copy(&cfg->fc_src, &rtmsg->rtmsg_src); -	ipv6_addr_copy(&cfg->fc_gateway, &rtmsg->rtmsg_gateway); +	cfg->fc_dst = rtmsg->rtmsg_dst; +	cfg->fc_src = rtmsg->rtmsg_src; +	cfg->fc_gateway = rtmsg->rtmsg_gateway;  }  int ipv6_route_ioctl(struct net *net, unsigned int cmd, void __user *arg) @@ -2082,7 +2082,7 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,  	}  	dst_set_neighbour(&rt->dst, neigh); -	ipv6_addr_copy(&rt->rt6i_dst.addr, addr); +	rt->rt6i_dst.addr = *addr;  	rt->rt6i_dst.plen = 128;  	rt->rt6i_table = fib6_get_table(net, RT6_TABLE_LOCAL); @@ -2100,7 +2100,7 @@ int ip6_route_get_saddr(struct net *net,  	struct inet6_dev *idev = ip6_dst_idev((struct dst_entry*)rt);  	int err = 0;  	if (rt->rt6i_prefsrc.plen) -		ipv6_addr_copy(saddr, &rt->rt6i_prefsrc.addr); +		*saddr = rt->rt6i_prefsrc.addr;  	else  		err = ipv6_dev_get_saddr(net, idev ? idev->dev : NULL,  					 daddr, prefs, saddr); @@ -2439,7 +2439,7 @@ static int rt6_fill_node(struct net *net,  	if (rt->rt6i_prefsrc.plen) {  		struct in6_addr saddr_buf; -		ipv6_addr_copy(&saddr_buf, &rt->rt6i_prefsrc.addr); +		saddr_buf = rt->rt6i_prefsrc.addr;  		NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf);  	} @@ -2513,14 +2513,14 @@ static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void  		if (nla_len(tb[RTA_SRC]) < sizeof(struct in6_addr))  			goto errout; -		ipv6_addr_copy(&fl6.saddr, nla_data(tb[RTA_SRC])); +		fl6.saddr = *(struct in6_addr *)nla_data(tb[RTA_SRC]);  	}  	if (tb[RTA_DST]) {  		if (nla_len(tb[RTA_DST]) < sizeof(struct in6_addr))  			goto errout; -		ipv6_addr_copy(&fl6.daddr, nla_data(tb[RTA_DST])); +		fl6.daddr = *(struct in6_addr *)nla_data(tb[RTA_DST]);  	}  	if (tb[RTA_IIF]) diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index cec09382282..50968f226e7 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c @@ -914,7 +914,7 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)  				goto done;  #ifdef CONFIG_IPV6_SIT_6RD  		} else { -			ipv6_addr_copy(&ip6rd.prefix, &t->ip6rd.prefix); +			ip6rd.prefix = t->ip6rd.prefix;  			ip6rd.relay_prefix = t->ip6rd.relay_prefix;  			ip6rd.prefixlen = t->ip6rd.prefixlen;  			ip6rd.relay_prefixlen = t->ip6rd.relay_prefixlen; @@ -1082,7 +1082,7 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)  			if (relay_prefix != ip6rd.relay_prefix)  				goto done; -			ipv6_addr_copy(&t->ip6rd.prefix, &prefix); +			t->ip6rd.prefix = prefix;  			t->ip6rd.relay_prefix = relay_prefix;  			t->ip6rd.prefixlen = ip6rd.prefixlen;  			t->ip6rd.relay_prefixlen = ip6rd.relay_prefixlen; diff --git a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c index 5a0d6648bbb..8e951d8d3b8 100644 --- a/net/ipv6/syncookies.c +++ b/net/ipv6/syncookies.c @@ -200,8 +200,8 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)  	req->mss = mss;  	ireq->rmt_port = th->source;  	ireq->loc_port = th->dest; -	ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr); -	ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr); +	ireq6->rmt_addr = ipv6_hdr(skb)->saddr; +	ireq6->loc_addr = ipv6_hdr(skb)->daddr;  	if (ipv6_opt_accepted(sk, skb) ||  	    np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||  	    np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) { @@ -237,9 +237,9 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)  		struct flowi6 fl6;  		memset(&fl6, 0, sizeof(fl6));  		fl6.flowi6_proto = IPPROTO_TCP; -		ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr); +		fl6.daddr = ireq6->rmt_addr;  		final_p = fl6_update_dst(&fl6, np->opt, &final); -		ipv6_addr_copy(&fl6.saddr, &ireq6->loc_addr); +		fl6.saddr = ireq6->loc_addr;  		fl6.flowi6_oif = sk->sk_bound_dev_if;  		fl6.flowi6_mark = sk->sk_mark;  		fl6.fl6_dport = inet_rsk(req)->rmt_port; diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 36131d122a6..fd98dd010fc 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -153,7 +153,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,  			flowlabel = fl6_sock_lookup(sk, fl6.flowlabel);  			if (flowlabel == NULL)  				return -EINVAL; -			ipv6_addr_copy(&usin->sin6_addr, &flowlabel->dst); +			usin->sin6_addr = flowlabel->dst;  			fl6_sock_release(flowlabel);  		}  	} @@ -195,7 +195,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,  		tp->write_seq = 0;  	} -	ipv6_addr_copy(&np->daddr, &usin->sin6_addr); +	np->daddr = usin->sin6_addr;  	np->flow_label = fl6.flowlabel;  	/* @@ -244,9 +244,8 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,  		saddr = &np->rcv_saddr;  	fl6.flowi6_proto = IPPROTO_TCP; -	ipv6_addr_copy(&fl6.daddr, &np->daddr); -	ipv6_addr_copy(&fl6.saddr, -		       (saddr ? saddr : &np->saddr)); +	fl6.daddr = np->daddr; +	fl6.saddr = saddr ? *saddr : np->saddr;  	fl6.flowi6_oif = sk->sk_bound_dev_if;  	fl6.flowi6_mark = sk->sk_mark;  	fl6.fl6_dport = usin->sin6_port; @@ -264,11 +263,11 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,  	if (saddr == NULL) {  		saddr = &fl6.saddr; -		ipv6_addr_copy(&np->rcv_saddr, saddr); +		np->rcv_saddr = *saddr;  	}  	/* set the source address */ -	ipv6_addr_copy(&np->saddr, saddr); +	np->saddr = *saddr;  	inet->inet_rcv_saddr = LOOPBACK4_IPV6;  	sk->sk_gso_type = SKB_GSO_TCPV6; @@ -398,8 +397,8 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,  			 */  			memset(&fl6, 0, sizeof(fl6));  			fl6.flowi6_proto = IPPROTO_TCP; -			ipv6_addr_copy(&fl6.daddr, &np->daddr); -			ipv6_addr_copy(&fl6.saddr, &np->saddr); +			fl6.daddr = np->daddr; +			fl6.saddr = np->saddr;  			fl6.flowi6_oif = sk->sk_bound_dev_if;  			fl6.flowi6_mark = sk->sk_mark;  			fl6.fl6_dport = inet->inet_dport; @@ -489,8 +488,8 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req,  	memset(&fl6, 0, sizeof(fl6));  	fl6.flowi6_proto = IPPROTO_TCP; -	ipv6_addr_copy(&fl6.daddr, &treq->rmt_addr); -	ipv6_addr_copy(&fl6.saddr, &treq->loc_addr); +	fl6.daddr = treq->rmt_addr; +	fl6.saddr = treq->loc_addr;  	fl6.flowlabel = 0;  	fl6.flowi6_oif = treq->iif;  	fl6.flowi6_mark = sk->sk_mark; @@ -512,7 +511,7 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req,  	if (skb) {  		__tcp_v6_send_check(skb, &treq->loc_addr, &treq->rmt_addr); -		ipv6_addr_copy(&fl6.daddr, &treq->rmt_addr); +		fl6.daddr = treq->rmt_addr;  		err = ip6_xmit(sk, skb, &fl6, opt, np->tclass);  		err = net_xmit_eval(err);  	} @@ -617,8 +616,7 @@ static int tcp_v6_md5_do_add(struct sock *sk, const struct in6_addr *peer,  			tp->md5sig_info->alloced6++;  		} -		ipv6_addr_copy(&tp->md5sig_info->keys6[tp->md5sig_info->entries6].addr, -			       peer); +		tp->md5sig_info->keys6[tp->md5sig_info->entries6].addr = *peer;  		tp->md5sig_info->keys6[tp->md5sig_info->entries6].base.key = newkey;  		tp->md5sig_info->keys6[tp->md5sig_info->entries6].base.keylen = newkeylen; @@ -750,8 +748,8 @@ static int tcp_v6_md5_hash_pseudoheader(struct tcp_md5sig_pool *hp,  	bp = &hp->md5_blk.ip6;  	/* 1. TCP pseudo-header (RFC2460) */ -	ipv6_addr_copy(&bp->saddr, saddr); -	ipv6_addr_copy(&bp->daddr, daddr); +	bp->saddr = *saddr; +	bp->daddr = *daddr;  	bp->protocol = cpu_to_be32(IPPROTO_TCP);  	bp->len = cpu_to_be32(nbytes); @@ -1039,8 +1037,8 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,  #endif  	memset(&fl6, 0, sizeof(fl6)); -	ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->saddr); -	ipv6_addr_copy(&fl6.saddr, &ipv6_hdr(skb)->daddr); +	fl6.daddr = ipv6_hdr(skb)->saddr; +	fl6.saddr = ipv6_hdr(skb)->daddr;  	buff->ip_summed = CHECKSUM_PARTIAL;  	buff->csum = 0; @@ -1250,8 +1248,8 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)  	tcp_openreq_init(req, &tmp_opt, skb);  	treq = inet6_rsk(req); -	ipv6_addr_copy(&treq->rmt_addr, &ipv6_hdr(skb)->saddr); -	ipv6_addr_copy(&treq->loc_addr, &ipv6_hdr(skb)->daddr); +	treq->rmt_addr = ipv6_hdr(skb)->saddr; +	treq->loc_addr = ipv6_hdr(skb)->daddr;  	if (!want_cookie || tmp_opt.tstamp_ok)  		TCP_ECN_create_request(req, tcp_hdr(skb)); @@ -1380,7 +1378,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,  		ipv6_addr_set_v4mapped(newinet->inet_saddr, &newnp->saddr); -		ipv6_addr_copy(&newnp->rcv_saddr, &newnp->saddr); +		newnp->rcv_saddr = newnp->saddr;  		inet_csk(newsk)->icsk_af_ops = &ipv6_mapped;  		newsk->sk_backlog_rcv = tcp_v4_do_rcv; @@ -1444,9 +1442,9 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,  	memcpy(newnp, np, sizeof(struct ipv6_pinfo)); -	ipv6_addr_copy(&newnp->daddr, &treq->rmt_addr); -	ipv6_addr_copy(&newnp->saddr, &treq->loc_addr); -	ipv6_addr_copy(&newnp->rcv_saddr, &treq->loc_addr); +	newnp->daddr = treq->rmt_addr; +	newnp->saddr = treq->loc_addr; +	newnp->rcv_saddr = treq->loc_addr;  	newsk->sk_bound_dev_if = treq->iif;  	/* Now IPv6 options... diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index ccfb0451b1c..84ec9db86ee 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -417,8 +417,7 @@ try_again:  			ipv6_addr_set_v4mapped(ip_hdr(skb)->saddr,  					       &sin6->sin6_addr);  		else { -			ipv6_addr_copy(&sin6->sin6_addr, -				       &ipv6_hdr(skb)->saddr); +			sin6->sin6_addr = ipv6_hdr(skb)->saddr;  			if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL)  				sin6->sin6_scope_id = IP6CB(skb)->iif;  		} @@ -1115,11 +1114,11 @@ do_udp_sendmsg:  	fl6.flowi6_proto = sk->sk_protocol;  	if (!ipv6_addr_any(daddr)) -		ipv6_addr_copy(&fl6.daddr, daddr); +		fl6.daddr = *daddr;  	else  		fl6.daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */  	if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr)) -		ipv6_addr_copy(&fl6.saddr, &np->saddr); +		fl6.saddr = np->saddr;  	fl6.fl6_sport = inet->inet_sport;  	final_p = fl6_update_dst(&fl6, opt, &final); diff --git a/net/ipv6/xfrm6_mode_beet.c b/net/ipv6/xfrm6_mode_beet.c index 3437d7d4eed..a81ce945075 100644 --- a/net/ipv6/xfrm6_mode_beet.c +++ b/net/ipv6/xfrm6_mode_beet.c @@ -72,8 +72,8 @@ static int xfrm6_beet_output(struct xfrm_state *x, struct sk_buff *skb)  		top_iph->nexthdr = IPPROTO_BEETPH;  	} -	ipv6_addr_copy(&top_iph->saddr, (struct in6_addr *)&x->props.saddr); -	ipv6_addr_copy(&top_iph->daddr, (struct in6_addr *)&x->id.daddr); +	top_iph->saddr = *(struct in6_addr *)&x->props.saddr; +	top_iph->daddr = *(struct in6_addr *)&x->id.daddr;  	return 0;  } @@ -99,8 +99,8 @@ static int xfrm6_beet_input(struct xfrm_state *x, struct sk_buff *skb)  	ip6h = ipv6_hdr(skb);  	ip6h->payload_len = htons(skb->len - size); -	ipv6_addr_copy(&ip6h->daddr, (struct in6_addr *) &x->sel.daddr.a6); -	ipv6_addr_copy(&ip6h->saddr, (struct in6_addr *) &x->sel.saddr.a6); +	ip6h->daddr = *(struct in6_addr *)&x->sel.daddr.a6; +	ip6h->saddr = *(struct in6_addr *)&x->sel.saddr.a6;  	err = 0;  out:  	return err; diff --git a/net/ipv6/xfrm6_mode_tunnel.c b/net/ipv6/xfrm6_mode_tunnel.c index 4d6edff0498..261e6e6f487 100644 --- a/net/ipv6/xfrm6_mode_tunnel.c +++ b/net/ipv6/xfrm6_mode_tunnel.c @@ -55,8 +55,8 @@ static int xfrm6_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)  		dsfield &= ~INET_ECN_MASK;  	ipv6_change_dsfield(top_iph, 0, dsfield);  	top_iph->hop_limit = ip6_dst_hoplimit(dst->child); -	ipv6_addr_copy(&top_iph->saddr, (const struct in6_addr *)&x->props.saddr); -	ipv6_addr_copy(&top_iph->daddr, (const struct in6_addr *)&x->id.daddr); +	top_iph->saddr = *(struct in6_addr *)&x->props.saddr; +	top_iph->daddr = *(struct in6_addr *)&x->id.daddr;  	return 0;  } diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c index faae41737fc..4eeff89c1aa 100644 --- a/net/ipv6/xfrm6_output.c +++ b/net/ipv6/xfrm6_output.c @@ -49,7 +49,7 @@ static void xfrm6_local_rxpmtu(struct sk_buff *skb, u32 mtu)  	struct sock *sk = skb->sk;  	fl6.flowi6_oif = sk->sk_bound_dev_if; -	ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->daddr); +	fl6.daddr = ipv6_hdr(skb)->daddr;  	ipv6_local_rxpmtu(sk, &fl6, mtu);  } @@ -60,7 +60,7 @@ static void xfrm6_local_error(struct sk_buff *skb, u32 mtu)  	struct sock *sk = skb->sk;  	fl6.fl6_dport = inet_sk(sk)->inet_dport; -	ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->daddr); +	fl6.daddr = ipv6_hdr(skb)->daddr;  	ipv6_local_error(sk, EMSGSIZE, &fl6, mtu);  } diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c index d879f7efbd1..8ea65e03273 100644 --- a/net/ipv6/xfrm6_policy.c +++ b/net/ipv6/xfrm6_policy.c @@ -132,8 +132,8 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)  	memset(fl6, 0, sizeof(struct flowi6));  	fl6->flowi6_mark = skb->mark; -	ipv6_addr_copy(&fl6->daddr, reverse ? &hdr->saddr : &hdr->daddr); -	ipv6_addr_copy(&fl6->saddr, reverse ? &hdr->daddr : &hdr->saddr); +	fl6->daddr = reverse ? hdr->saddr : hdr->daddr; +	fl6->saddr = reverse ? hdr->daddr : hdr->saddr;  	while (nh + offset + 1 < skb->data ||  	       pskb_may_pull(skb, nh + offset + 1 - skb->data)) { diff --git a/net/ipv6/xfrm6_state.c b/net/ipv6/xfrm6_state.c index f2d72b8a3fa..3f2f7c4ab72 100644 --- a/net/ipv6/xfrm6_state.c +++ b/net/ipv6/xfrm6_state.c @@ -27,8 +27,8 @@ __xfrm6_init_tempsel(struct xfrm_selector *sel, const struct flowi *fl)  	/* Initialize temporary selector matching only  	 * to current session. */ -	ipv6_addr_copy((struct in6_addr *)&sel->daddr, &fl6->daddr); -	ipv6_addr_copy((struct in6_addr *)&sel->saddr, &fl6->saddr); +	*(struct in6_addr *)&sel->daddr = fl6->daddr; +	*(struct in6_addr *)&sel->saddr = fl6->saddr;  	sel->dport = xfrm_flowi_dport(fl, &fl6->uli);  	sel->dport_mask = htons(0xffff);  	sel->sport = xfrm_flowi_sport(fl, &fl6->uli);  |