new helper: memcpy_to_msg()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
e169371823
commit
7eab8d9e8a
|
@ -174,7 +174,7 @@ static int hash_recvmsg(struct kiocb *unused, struct socket *sock,
|
||||||
goto unlock;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = memcpy_toiovec(msg->msg_iov, ctx->result, len);
|
err = memcpy_to_msg(msg, ctx->result, len);
|
||||||
|
|
||||||
unlock:
|
unlock:
|
||||||
release_sock(sk);
|
release_sock(sk);
|
||||||
|
|
|
@ -2692,6 +2692,11 @@ static inline int memcpy_from_msg(void *data, struct msghdr *msg, int len)
|
||||||
return memcpy_fromiovec(data, msg->msg_iov, len);
|
return memcpy_fromiovec(data, msg->msg_iov, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int memcpy_to_msg(struct msghdr *msg, void *data, int len)
|
||||||
|
{
|
||||||
|
return memcpy_toiovec(msg->msg_iov, data, len);
|
||||||
|
}
|
||||||
|
|
||||||
struct skb_checksum_ops {
|
struct skb_checksum_ops {
|
||||||
__wsum (*update)(const void *mem, int len, __wsum wsum);
|
__wsum (*update)(const void *mem, int len, __wsum wsum);
|
||||||
__wsum (*combine)(__wsum csum, __wsum csum2, int offset, int len);
|
__wsum (*combine)(__wsum csum, __wsum csum2, int offset, int len);
|
||||||
|
|
|
@ -418,7 +418,7 @@ static int caif_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||||
}
|
}
|
||||||
release_sock(sk);
|
release_sock(sk);
|
||||||
chunk = min_t(unsigned int, skb->len, size);
|
chunk = min_t(unsigned int, skb->len, size);
|
||||||
if (memcpy_toiovec(msg->msg_iov, skb->data, chunk)) {
|
if (memcpy_to_msg(msg, skb->data, chunk)) {
|
||||||
skb_queue_head(&sk->sk_receive_queue, skb);
|
skb_queue_head(&sk->sk_receive_queue, skb);
|
||||||
if (copied == 0)
|
if (copied == 0)
|
||||||
copied = -EFAULT;
|
copied = -EFAULT;
|
||||||
|
|
|
@ -1555,7 +1555,7 @@ static int bcm_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||||
if (skb->len < size)
|
if (skb->len < size)
|
||||||
size = skb->len;
|
size = skb->len;
|
||||||
|
|
||||||
err = memcpy_toiovec(msg->msg_iov, skb->data, size);
|
err = memcpy_to_msg(msg, skb->data, size);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
skb_free_datagram(sk, skb);
|
skb_free_datagram(sk, skb);
|
||||||
return err;
|
return err;
|
||||||
|
|
|
@ -750,7 +750,7 @@ static int raw_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||||
else
|
else
|
||||||
size = skb->len;
|
size = skb->len;
|
||||||
|
|
||||||
err = memcpy_toiovec(msg->msg_iov, skb->data, size);
|
err = memcpy_to_msg(msg, skb->data, size);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
skb_free_datagram(sk, skb);
|
skb_free_datagram(sk, skb);
|
||||||
return err;
|
return err;
|
||||||
|
|
|
@ -1760,7 +1760,7 @@ static int dn_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||||
if ((chunk + copied) > size)
|
if ((chunk + copied) > size)
|
||||||
chunk = size - copied;
|
chunk = size - copied;
|
||||||
|
|
||||||
if (memcpy_toiovec(msg->msg_iov, skb->data, chunk)) {
|
if (memcpy_to_msg(msg, skb->data, chunk)) {
|
||||||
rv = -EFAULT;
|
rv = -EFAULT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1349,7 +1349,7 @@ static int tcp_recv_urg(struct sock *sk, struct msghdr *msg, int len, int flags)
|
||||||
|
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
if (!(flags & MSG_TRUNC))
|
if (!(flags & MSG_TRUNC))
|
||||||
err = memcpy_toiovec(msg->msg_iov, &c, 1);
|
err = memcpy_to_msg(msg, &c, 1);
|
||||||
len = 1;
|
len = 1;
|
||||||
} else
|
} else
|
||||||
msg->msg_flags |= MSG_TRUNC;
|
msg->msg_flags |= MSG_TRUNC;
|
||||||
|
|
|
@ -1466,7 +1466,7 @@ static int irda_recvmsg_stream(struct kiocb *iocb, struct socket *sock,
|
||||||
}
|
}
|
||||||
|
|
||||||
chunk = min_t(unsigned int, skb->len, size);
|
chunk = min_t(unsigned int, skb->len, size);
|
||||||
if (memcpy_toiovec(msg->msg_iov, skb->data, chunk)) {
|
if (memcpy_to_msg(msg, skb->data, chunk)) {
|
||||||
skb_queue_head(&sk->sk_receive_queue, skb);
|
skb_queue_head(&sk->sk_receive_queue, skb);
|
||||||
if (copied == 0)
|
if (copied == 0)
|
||||||
copied = -EFAULT;
|
copied = -EFAULT;
|
||||||
|
|
|
@ -2949,8 +2949,7 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||||
vnet_hdr.flags = VIRTIO_NET_HDR_F_DATA_VALID;
|
vnet_hdr.flags = VIRTIO_NET_HDR_F_DATA_VALID;
|
||||||
} /* else everything is zero */
|
} /* else everything is zero */
|
||||||
|
|
||||||
err = memcpy_toiovec(msg->msg_iov, (void *)&vnet_hdr,
|
err = memcpy_to_msg(msg, (void *)&vnet_hdr, vnet_hdr_len);
|
||||||
vnet_hdr_len);
|
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue