new helper: skb_copy_and_csum_datagram_msg()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
c33d23c215
commit
227158db16
|
@ -2651,6 +2651,11 @@ static inline int skb_copy_datagram_msg(const struct sk_buff *from, int offset,
|
|||
}
|
||||
int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb, int hlen,
|
||||
struct iovec *iov);
|
||||
static inline int skb_copy_and_csum_datagram_msg(struct sk_buff *skb, int hlen,
|
||||
struct msghdr *msg)
|
||||
{
|
||||
return skb_copy_and_csum_datagram_iovec(skb, hlen, msg->msg_iov);
|
||||
}
|
||||
int skb_copy_datagram_from_iovec(struct sk_buff *skb, int offset,
|
||||
const struct iovec *from, int from_offset,
|
||||
int len);
|
||||
|
|
|
@ -1284,9 +1284,8 @@ try_again:
|
|||
err = skb_copy_datagram_msg(skb, sizeof(struct udphdr),
|
||||
msg, copied);
|
||||
else {
|
||||
err = skb_copy_and_csum_datagram_iovec(skb,
|
||||
sizeof(struct udphdr),
|
||||
msg->msg_iov);
|
||||
err = skb_copy_and_csum_datagram_msg(skb, sizeof(struct udphdr),
|
||||
msg);
|
||||
|
||||
if (err == -EINVAL)
|
||||
goto csum_copy_err;
|
||||
|
|
|
@ -492,7 +492,7 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,
|
|||
goto csum_copy_err;
|
||||
err = skb_copy_datagram_msg(skb, 0, msg, copied);
|
||||
} else {
|
||||
err = skb_copy_and_csum_datagram_iovec(skb, 0, msg->msg_iov);
|
||||
err = skb_copy_and_csum_datagram_msg(skb, 0, msg);
|
||||
if (err == -EINVAL)
|
||||
goto csum_copy_err;
|
||||
}
|
||||
|
|
|
@ -428,7 +428,7 @@ try_again:
|
|||
err = skb_copy_datagram_msg(skb, sizeof(struct udphdr),
|
||||
msg, copied);
|
||||
else {
|
||||
err = skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov);
|
||||
err = skb_copy_and_csum_datagram_msg(skb, sizeof(struct udphdr), msg);
|
||||
if (err == -EINVAL)
|
||||
goto csum_copy_err;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue