diff options
author | David S. Miller <davem@davemloft.net> | 2014-11-05 16:46:40 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-05 16:46:40 -0500 |
commit | 51f3d02b980a338cd291d2bc7629cdfb2568424b (patch) | |
tree | f49898ea87db3d5e3f5c248ab21f6ed0a70785b8 /net/ipv6 | |
parent | 1d76c1d028975df8488d1ae18a76f268eb5efa93 (diff) |
net: Add and use skb_copy_datagram_msg() helper.
This encapsulates all of the skb_copy_datagram_iovec() callers
with call argument signature "skb, offset, msghdr->msg_iov, length".
When we move to iov_iters in the networking, the iov_iter object will
sit in the msghdr.
Having a helper like this means there will be less places to touch
during that transformation.
Based upon descriptions and patch from Al Viro.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/datagram.c | 4 | ||||
-rw-r--r-- | net/ipv6/raw.c | 4 | ||||
-rw-r--r-- | net/ipv6/udp.c | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c index 2cdc38338be3..5c6996e44b14 100644 --- a/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c | |||
@@ -351,7 +351,7 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len) | |||
351 | msg->msg_flags |= MSG_TRUNC; | 351 | msg->msg_flags |= MSG_TRUNC; |
352 | copied = len; | 352 | copied = len; |
353 | } | 353 | } |
354 | err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); | 354 | err = skb_copy_datagram_msg(skb, 0, msg, copied); |
355 | if (err) | 355 | if (err) |
356 | goto out_free_skb; | 356 | goto out_free_skb; |
357 | 357 | ||
@@ -445,7 +445,7 @@ int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len, | |||
445 | msg->msg_flags |= MSG_TRUNC; | 445 | msg->msg_flags |= MSG_TRUNC; |
446 | copied = len; | 446 | copied = len; |
447 | } | 447 | } |
448 | err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); | 448 | err = skb_copy_datagram_msg(skb, 0, msg, copied); |
449 | if (err) | 449 | if (err) |
450 | goto out_free_skb; | 450 | goto out_free_skb; |
451 | 451 | ||
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 075a0fb400e7..0cbcf98f2cab 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -486,11 +486,11 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk, | |||
486 | } | 486 | } |
487 | 487 | ||
488 | if (skb_csum_unnecessary(skb)) { | 488 | if (skb_csum_unnecessary(skb)) { |
489 | err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); | 489 | err = skb_copy_datagram_msg(skb, 0, msg, copied); |
490 | } else if (msg->msg_flags&MSG_TRUNC) { | 490 | } else if (msg->msg_flags&MSG_TRUNC) { |
491 | if (__skb_checksum_complete(skb)) | 491 | if (__skb_checksum_complete(skb)) |
492 | goto csum_copy_err; | 492 | goto csum_copy_err; |
493 | err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); | 493 | err = skb_copy_datagram_msg(skb, 0, msg, copied); |
494 | } else { | 494 | } else { |
495 | err = skb_copy_and_csum_datagram_iovec(skb, 0, msg->msg_iov); | 495 | err = skb_copy_and_csum_datagram_iovec(skb, 0, msg->msg_iov); |
496 | if (err == -EINVAL) | 496 | if (err == -EINVAL) |
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index f6ba535b6feb..9b6809232b17 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -424,8 +424,8 @@ try_again: | |||
424 | } | 424 | } |
425 | 425 | ||
426 | if (skb_csum_unnecessary(skb)) | 426 | if (skb_csum_unnecessary(skb)) |
427 | err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr), | 427 | err = skb_copy_datagram_msg(skb, sizeof(struct udphdr), |
428 | msg->msg_iov, copied); | 428 | msg, copied); |
429 | else { | 429 | else { |
430 | err = skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov); | 430 | err = skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov); |
431 | if (err == -EINVAL) | 431 | if (err == -EINVAL) |