aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/tcp_ipv6.c
diff options
context:
space:
mode:
authorAlexey Dobriyan <adobriyan@gmail.com>2011-11-20 22:39:03 -0500
committerDavid S. Miller <davem@davemloft.net>2011-11-22 16:43:32 -0500
commit4e3fd7a06dc20b2d8ec6892233ad2012968fe7b6 (patch)
treeda3fbec7672ac6b967dfa31cec6c88f468a57fa2 /net/ipv6/tcp_ipv6.c
parent40ba84993d66469d336099c5af74c3da5b73e28d (diff)
net: remove ipv6_addr_copy()
C assignment can handle struct in6_addr copying. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r--net/ipv6/tcp_ipv6.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 36131d122a6f..fd98dd010fcb 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,
153 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); 153 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel);
154 if (flowlabel == NULL) 154 if (flowlabel == NULL)
155 return -EINVAL; 155 return -EINVAL;
156 ipv6_addr_copy(&usin->sin6_addr, &flowlabel->dst); 156 usin->sin6_addr = flowlabel->dst;
157 fl6_sock_release(flowlabel); 157 fl6_sock_release(flowlabel);
158 } 158 }
159 } 159 }
@@ -195,7 +195,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
195 tp->write_seq = 0; 195 tp->write_seq = 0;
196 } 196 }
197 197
198 ipv6_addr_copy(&np->daddr, &usin->sin6_addr); 198 np->daddr = usin->sin6_addr;
199 np->flow_label = fl6.flowlabel; 199 np->flow_label = fl6.flowlabel;
200 200
201 /* 201 /*
@@ -244,9 +244,8 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
244 saddr = &np->rcv_saddr; 244 saddr = &np->rcv_saddr;
245 245
246 fl6.flowi6_proto = IPPROTO_TCP; 246 fl6.flowi6_proto = IPPROTO_TCP;
247 ipv6_addr_copy(&fl6.daddr, &np->daddr); 247 fl6.daddr = np->daddr;
248 ipv6_addr_copy(&fl6.saddr, 248 fl6.saddr = saddr ? *saddr : np->saddr;
249 (saddr ? saddr : &np->saddr));
250 fl6.flowi6_oif = sk->sk_bound_dev_if; 249 fl6.flowi6_oif = sk->sk_bound_dev_if;
251 fl6.flowi6_mark = sk->sk_mark; 250 fl6.flowi6_mark = sk->sk_mark;
252 fl6.fl6_dport = usin->sin6_port; 251 fl6.fl6_dport = usin->sin6_port;
@@ -264,11 +263,11 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
264 263
265 if (saddr == NULL) { 264 if (saddr == NULL) {
266 saddr = &fl6.saddr; 265 saddr = &fl6.saddr;
267 ipv6_addr_copy(&np->rcv_saddr, saddr); 266 np->rcv_saddr = *saddr;
268 } 267 }
269 268
270 /* set the source address */ 269 /* set the source address */
271 ipv6_addr_copy(&np->saddr, saddr); 270 np->saddr = *saddr;
272 inet->inet_rcv_saddr = LOOPBACK4_IPV6; 271 inet->inet_rcv_saddr = LOOPBACK4_IPV6;
273 272
274 sk->sk_gso_type = SKB_GSO_TCPV6; 273 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,
398 */ 397 */
399 memset(&fl6, 0, sizeof(fl6)); 398 memset(&fl6, 0, sizeof(fl6));
400 fl6.flowi6_proto = IPPROTO_TCP; 399 fl6.flowi6_proto = IPPROTO_TCP;
401 ipv6_addr_copy(&fl6.daddr, &np->daddr); 400 fl6.daddr = np->daddr;
402 ipv6_addr_copy(&fl6.saddr, &np->saddr); 401 fl6.saddr = np->saddr;
403 fl6.flowi6_oif = sk->sk_bound_dev_if; 402 fl6.flowi6_oif = sk->sk_bound_dev_if;
404 fl6.flowi6_mark = sk->sk_mark; 403 fl6.flowi6_mark = sk->sk_mark;
405 fl6.fl6_dport = inet->inet_dport; 404 fl6.fl6_dport = inet->inet_dport;
@@ -489,8 +488,8 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req,
489 488
490 memset(&fl6, 0, sizeof(fl6)); 489 memset(&fl6, 0, sizeof(fl6));
491 fl6.flowi6_proto = IPPROTO_TCP; 490 fl6.flowi6_proto = IPPROTO_TCP;
492 ipv6_addr_copy(&fl6.daddr, &treq->rmt_addr); 491 fl6.daddr = treq->rmt_addr;
493 ipv6_addr_copy(&fl6.saddr, &treq->loc_addr); 492 fl6.saddr = treq->loc_addr;
494 fl6.flowlabel = 0; 493 fl6.flowlabel = 0;
495 fl6.flowi6_oif = treq->iif; 494 fl6.flowi6_oif = treq->iif;
496 fl6.flowi6_mark = sk->sk_mark; 495 fl6.flowi6_mark = sk->sk_mark;
@@ -512,7 +511,7 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req,
512 if (skb) { 511 if (skb) {
513 __tcp_v6_send_check(skb, &treq->loc_addr, &treq->rmt_addr); 512 __tcp_v6_send_check(skb, &treq->loc_addr, &treq->rmt_addr);
514 513
515 ipv6_addr_copy(&fl6.daddr, &treq->rmt_addr); 514 fl6.daddr = treq->rmt_addr;
516 err = ip6_xmit(sk, skb, &fl6, opt, np->tclass); 515 err = ip6_xmit(sk, skb, &fl6, opt, np->tclass);
517 err = net_xmit_eval(err); 516 err = net_xmit_eval(err);
518 } 517 }
@@ -617,8 +616,7 @@ static int tcp_v6_md5_do_add(struct sock *sk, const struct in6_addr *peer,
617 tp->md5sig_info->alloced6++; 616 tp->md5sig_info->alloced6++;
618 } 617 }
619 618
620 ipv6_addr_copy(&tp->md5sig_info->keys6[tp->md5sig_info->entries6].addr, 619 tp->md5sig_info->keys6[tp->md5sig_info->entries6].addr = *peer;
621 peer);
622 tp->md5sig_info->keys6[tp->md5sig_info->entries6].base.key = newkey; 620 tp->md5sig_info->keys6[tp->md5sig_info->entries6].base.key = newkey;
623 tp->md5sig_info->keys6[tp->md5sig_info->entries6].base.keylen = newkeylen; 621 tp->md5sig_info->keys6[tp->md5sig_info->entries6].base.keylen = newkeylen;
624 622
@@ -750,8 +748,8 @@ static int tcp_v6_md5_hash_pseudoheader(struct tcp_md5sig_pool *hp,
750 748
751 bp = &hp->md5_blk.ip6; 749 bp = &hp->md5_blk.ip6;
752 /* 1. TCP pseudo-header (RFC2460) */ 750 /* 1. TCP pseudo-header (RFC2460) */
753 ipv6_addr_copy(&bp->saddr, saddr); 751 bp->saddr = *saddr;
754 ipv6_addr_copy(&bp->daddr, daddr); 752 bp->daddr = *daddr;
755 bp->protocol = cpu_to_be32(IPPROTO_TCP); 753 bp->protocol = cpu_to_be32(IPPROTO_TCP);
756 bp->len = cpu_to_be32(nbytes); 754 bp->len = cpu_to_be32(nbytes);
757 755
@@ -1039,8 +1037,8 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,
1039#endif 1037#endif
1040 1038
1041 memset(&fl6, 0, sizeof(fl6)); 1039 memset(&fl6, 0, sizeof(fl6));
1042 ipv6_addr_copy(&fl6.daddr, &ipv6_hdr(skb)->saddr); 1040 fl6.daddr = ipv6_hdr(skb)->saddr;
1043 ipv6_addr_copy(&fl6.saddr, &ipv6_hdr(skb)->daddr); 1041 fl6.saddr = ipv6_hdr(skb)->daddr;
1044 1042
1045 buff->ip_summed = CHECKSUM_PARTIAL; 1043 buff->ip_summed = CHECKSUM_PARTIAL;
1046 buff->csum = 0; 1044 buff->csum = 0;
@@ -1250,8 +1248,8 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
1250 tcp_openreq_init(req, &tmp_opt, skb); 1248 tcp_openreq_init(req, &tmp_opt, skb);
1251 1249
1252 treq = inet6_rsk(req); 1250 treq = inet6_rsk(req);
1253 ipv6_addr_copy(&treq->rmt_addr, &ipv6_hdr(skb)->saddr); 1251 treq->rmt_addr = ipv6_hdr(skb)->saddr;
1254 ipv6_addr_copy(&treq->loc_addr, &ipv6_hdr(skb)->daddr); 1252 treq->loc_addr = ipv6_hdr(skb)->daddr;
1255 if (!want_cookie || tmp_opt.tstamp_ok) 1253 if (!want_cookie || tmp_opt.tstamp_ok)
1256 TCP_ECN_create_request(req, tcp_hdr(skb)); 1254 TCP_ECN_create_request(req, tcp_hdr(skb));
1257 1255
@@ -1380,7 +1378,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
1380 1378
1381 ipv6_addr_set_v4mapped(newinet->inet_saddr, &newnp->saddr); 1379 ipv6_addr_set_v4mapped(newinet->inet_saddr, &newnp->saddr);
1382 1380
1383 ipv6_addr_copy(&newnp->rcv_saddr, &newnp->saddr); 1381 newnp->rcv_saddr = newnp->saddr;
1384 1382
1385 inet_csk(newsk)->icsk_af_ops = &ipv6_mapped; 1383 inet_csk(newsk)->icsk_af_ops = &ipv6_mapped;
1386 newsk->sk_backlog_rcv = tcp_v4_do_rcv; 1384 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,
1444 1442
1445 memcpy(newnp, np, sizeof(struct ipv6_pinfo)); 1443 memcpy(newnp, np, sizeof(struct ipv6_pinfo));
1446 1444
1447 ipv6_addr_copy(&newnp->daddr, &treq->rmt_addr); 1445 newnp->daddr = treq->rmt_addr;
1448 ipv6_addr_copy(&newnp->saddr, &treq->loc_addr); 1446 newnp->saddr = treq->loc_addr;
1449 ipv6_addr_copy(&newnp->rcv_saddr, &treq->loc_addr); 1447 newnp->rcv_saddr = treq->loc_addr;
1450 newsk->sk_bound_dev_if = treq->iif; 1448 newsk->sk_bound_dev_if = treq->iif;
1451 1449
1452 /* Now IPv6 options... 1450 /* Now IPv6 options...