diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2014-04-06 21:51:23 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-24 04:28:51 -0500 |
| commit | 7eab8d9e8a722ca07bc785f73e21c3d3418defa6 (patch) | |
| tree | f42c78986668929d2a2b05d88c94a36dab7c1a36 | |
| parent | e169371823827dae1fd1d15bceb0fe5497c1a5ba (diff) | |
new helper: memcpy_to_msg()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | crypto/algif_hash.c | 2 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 5 | ||||
| -rw-r--r-- | net/caif/caif_socket.c | 2 | ||||
| -rw-r--r-- | net/can/bcm.c | 2 | ||||
| -rw-r--r-- | net/can/raw.c | 2 | ||||
| -rw-r--r-- | net/decnet/af_decnet.c | 2 | ||||
| -rw-r--r-- | net/ipv4/tcp.c | 2 | ||||
| -rw-r--r-- | net/irda/af_irda.c | 2 | ||||
| -rw-r--r-- | net/packet/af_packet.c | 3 |
9 files changed, 13 insertions, 9 deletions
diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c index 850246206b12..35c93ff11f35 100644 --- a/crypto/algif_hash.c +++ b/crypto/algif_hash.c | |||
| @@ -174,7 +174,7 @@ static int hash_recvmsg(struct kiocb *unused, struct socket *sock, | |||
| 174 | goto unlock; | 174 | goto unlock; |
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | err = memcpy_toiovec(msg->msg_iov, ctx->result, len); | 177 | err = memcpy_to_msg(msg, ctx->result, len); |
| 178 | 178 | ||
| 179 | unlock: | 179 | unlock: |
| 180 | release_sock(sk); | 180 | release_sock(sk); |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 97dc5f8123b3..d048347a010a 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -2692,6 +2692,11 @@ static inline int memcpy_from_msg(void *data, struct msghdr *msg, int len) | |||
| 2692 | return memcpy_fromiovec(data, msg->msg_iov, len); | 2692 | return memcpy_fromiovec(data, msg->msg_iov, len); |
| 2693 | } | 2693 | } |
| 2694 | 2694 | ||
| 2695 | static inline int memcpy_to_msg(struct msghdr *msg, void *data, int len) | ||
| 2696 | { | ||
| 2697 | return memcpy_toiovec(msg->msg_iov, data, len); | ||
| 2698 | } | ||
| 2699 | |||
| 2695 | struct skb_checksum_ops { | 2700 | struct skb_checksum_ops { |
| 2696 | __wsum (*update)(const void *mem, int len, __wsum wsum); | 2701 | __wsum (*update)(const void *mem, int len, __wsum wsum); |
| 2697 | __wsum (*combine)(__wsum csum, __wsum csum2, int offset, int len); | 2702 | __wsum (*combine)(__wsum csum, __wsum csum2, int offset, int len); |
diff --git a/net/caif/caif_socket.c b/net/caif/caif_socket.c index 230f14026c11..ac618b0b8a4f 100644 --- a/net/caif/caif_socket.c +++ b/net/caif/caif_socket.c | |||
| @@ -418,7 +418,7 @@ unlock: | |||
| 418 | } | 418 | } |
| 419 | release_sock(sk); | 419 | release_sock(sk); |
| 420 | chunk = min_t(unsigned int, skb->len, size); | 420 | chunk = min_t(unsigned int, skb->len, size); |
| 421 | if (memcpy_toiovec(msg->msg_iov, skb->data, chunk)) { | 421 | if (memcpy_to_msg(msg, skb->data, chunk)) { |
| 422 | skb_queue_head(&sk->sk_receive_queue, skb); | 422 | skb_queue_head(&sk->sk_receive_queue, skb); |
| 423 | if (copied == 0) | 423 | if (copied == 0) |
| 424 | copied = -EFAULT; | 424 | copied = -EFAULT; |
diff --git a/net/can/bcm.c b/net/can/bcm.c index b9a1f715df18..01671187e3fe 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c | |||
| @@ -1555,7 +1555,7 @@ static int bcm_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
| 1555 | if (skb->len < size) | 1555 | if (skb->len < size) |
| 1556 | size = skb->len; | 1556 | size = skb->len; |
| 1557 | 1557 | ||
| 1558 | err = memcpy_toiovec(msg->msg_iov, skb->data, size); | 1558 | err = memcpy_to_msg(msg, skb->data, size); |
| 1559 | if (err < 0) { | 1559 | if (err < 0) { |
| 1560 | skb_free_datagram(sk, skb); | 1560 | skb_free_datagram(sk, skb); |
| 1561 | return err; | 1561 | return err; |
diff --git a/net/can/raw.c b/net/can/raw.c index 0e4004fb6876..dfdcffbb1070 100644 --- a/net/can/raw.c +++ b/net/can/raw.c | |||
| @@ -750,7 +750,7 @@ static int raw_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
| 750 | else | 750 | else |
| 751 | size = skb->len; | 751 | size = skb->len; |
| 752 | 752 | ||
| 753 | err = memcpy_toiovec(msg->msg_iov, skb->data, size); | 753 | err = memcpy_to_msg(msg, skb->data, size); |
| 754 | if (err < 0) { | 754 | if (err < 0) { |
| 755 | skb_free_datagram(sk, skb); | 755 | skb_free_datagram(sk, skb); |
| 756 | return err; | 756 | return err; |
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index e2e2e3cb9113..810228646de3 100644 --- a/net/decnet/af_decnet.c +++ b/net/decnet/af_decnet.c | |||
| @@ -1760,7 +1760,7 @@ static int dn_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
| 1760 | if ((chunk + copied) > size) | 1760 | if ((chunk + copied) > size) |
| 1761 | chunk = size - copied; | 1761 | chunk = size - copied; |
| 1762 | 1762 | ||
| 1763 | if (memcpy_toiovec(msg->msg_iov, skb->data, chunk)) { | 1763 | if (memcpy_to_msg(msg, skb->data, chunk)) { |
| 1764 | rv = -EFAULT; | 1764 | rv = -EFAULT; |
| 1765 | break; | 1765 | break; |
| 1766 | } | 1766 | } |
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index c239f4740d10..435443bfc3c3 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
| @@ -1349,7 +1349,7 @@ static int tcp_recv_urg(struct sock *sk, struct msghdr *msg, int len, int flags) | |||
| 1349 | 1349 | ||
| 1350 | if (len > 0) { | 1350 | if (len > 0) { |
| 1351 | if (!(flags & MSG_TRUNC)) | 1351 | if (!(flags & MSG_TRUNC)) |
| 1352 | err = memcpy_toiovec(msg->msg_iov, &c, 1); | 1352 | err = memcpy_to_msg(msg, &c, 1); |
| 1353 | len = 1; | 1353 | len = 1; |
| 1354 | } else | 1354 | } else |
| 1355 | msg->msg_flags |= MSG_TRUNC; | 1355 | msg->msg_flags |= MSG_TRUNC; |
diff --git a/net/irda/af_irda.c b/net/irda/af_irda.c index 9052462cf42a..568edc72d737 100644 --- a/net/irda/af_irda.c +++ b/net/irda/af_irda.c | |||
| @@ -1466,7 +1466,7 @@ static int irda_recvmsg_stream(struct kiocb *iocb, struct socket *sock, | |||
| 1466 | } | 1466 | } |
| 1467 | 1467 | ||
| 1468 | chunk = min_t(unsigned int, skb->len, size); | 1468 | chunk = min_t(unsigned int, skb->len, size); |
| 1469 | if (memcpy_toiovec(msg->msg_iov, skb->data, chunk)) { | 1469 | if (memcpy_to_msg(msg, skb->data, chunk)) { |
| 1470 | skb_queue_head(&sk->sk_receive_queue, skb); | 1470 | skb_queue_head(&sk->sk_receive_queue, skb); |
| 1471 | if (copied == 0) | 1471 | if (copied == 0) |
| 1472 | copied = -EFAULT; | 1472 | copied = -EFAULT; |
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 07ac95014ecb..108d7f381b87 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
| @@ -2949,8 +2949,7 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
| 2949 | vnet_hdr.flags = VIRTIO_NET_HDR_F_DATA_VALID; | 2949 | vnet_hdr.flags = VIRTIO_NET_HDR_F_DATA_VALID; |
| 2950 | } /* else everything is zero */ | 2950 | } /* else everything is zero */ |
| 2951 | 2951 | ||
| 2952 | err = memcpy_toiovec(msg->msg_iov, (void *)&vnet_hdr, | 2952 | err = memcpy_to_msg(msg, (void *)&vnet_hdr, vnet_hdr_len); |
| 2953 | vnet_hdr_len); | ||
| 2954 | if (err < 0) | 2953 | if (err < 0) |
| 2955 | goto out_free; | 2954 | goto out_free; |
| 2956 | } | 2955 | } |
