diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-24 13:23:40 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-12-09 16:28:22 -0500 |
commit | f69e6d131f5dac8278ac79a902cc448364880d8b (patch) | |
tree | 10349e4876756e6dd3382ee2db9158f7bd54b0d8 | |
parent | 19e3c66b52caf20a9a1119dc847b6abae4c03f4f (diff) |
ip_generic_getfrag, udplite_getfrag: switch to passing msghdr
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | include/net/udplite.h | 3 | ||||
-rw-r--r-- | net/ipv4/ip_output.c | 6 | ||||
-rw-r--r-- | net/ipv4/raw.c | 2 | ||||
-rw-r--r-- | net/ipv4/udp.c | 4 | ||||
-rw-r--r-- | net/ipv6/raw.c | 2 | ||||
-rw-r--r-- | net/ipv6/udp.c | 2 | ||||
-rw-r--r-- | net/l2tp/l2tp_ip6.c | 2 |
7 files changed, 11 insertions, 10 deletions
diff --git a/include/net/udplite.h b/include/net/udplite.h index 9a28a5179400..d5baaba65b46 100644 --- a/include/net/udplite.h +++ b/include/net/udplite.h | |||
@@ -19,7 +19,8 @@ extern struct udp_table udplite_table; | |||
19 | static __inline__ int udplite_getfrag(void *from, char *to, int offset, | 19 | static __inline__ int udplite_getfrag(void *from, char *to, int offset, |
20 | int len, int odd, struct sk_buff *skb) | 20 | int len, int odd, struct sk_buff *skb) |
21 | { | 21 | { |
22 | return memcpy_fromiovecend(to, (struct iovec *) from, offset, len); | 22 | struct msghdr *msg = from; |
23 | return memcpy_fromiovecend(to, msg->msg_iov, offset, len); | ||
23 | } | 24 | } |
24 | 25 | ||
25 | /* Designate sk as UDP-Lite socket */ | 26 | /* Designate sk as UDP-Lite socket */ |
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 4a929adf2ab7..cdedcf144463 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -752,14 +752,14 @@ EXPORT_SYMBOL(ip_fragment); | |||
752 | int | 752 | int |
753 | ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb) | 753 | ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb) |
754 | { | 754 | { |
755 | struct iovec *iov = from; | 755 | struct msghdr *msg = from; |
756 | 756 | ||
757 | if (skb->ip_summed == CHECKSUM_PARTIAL) { | 757 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
758 | if (memcpy_fromiovecend(to, iov, offset, len) < 0) | 758 | if (memcpy_fromiovecend(to, msg->msg_iov, offset, len) < 0) |
759 | return -EFAULT; | 759 | return -EFAULT; |
760 | } else { | 760 | } else { |
761 | __wsum csum = 0; | 761 | __wsum csum = 0; |
762 | if (csum_partial_copy_fromiovecend(to, iov, offset, len, &csum) < 0) | 762 | if (csum_partial_copy_fromiovecend(to, msg->msg_iov, offset, len, &csum) < 0) |
763 | return -EFAULT; | 763 | return -EFAULT; |
764 | skb->csum = csum_block_add(skb->csum, csum, odd); | 764 | skb->csum = csum_block_add(skb->csum, csum, odd); |
765 | } | 765 | } |
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 5c901ebf90af..5d83bd2fcedb 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c | |||
@@ -478,7 +478,7 @@ static int raw_getfrag(void *from, char *to, int offset, int len, int odd, | |||
478 | 478 | ||
479 | offset -= rfv->hlen; | 479 | offset -= rfv->hlen; |
480 | 480 | ||
481 | return ip_generic_getfrag(rfv->msg->msg_iov, to, offset, len, odd, skb); | 481 | return ip_generic_getfrag(rfv->msg, to, offset, len, odd, skb); |
482 | } | 482 | } |
483 | 483 | ||
484 | static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, | 484 | static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, |
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index dd8e00634563..13b4dcf86ef6 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c | |||
@@ -1049,7 +1049,7 @@ back_from_confirm: | |||
1049 | 1049 | ||
1050 | /* Lockless fast path for the non-corking case. */ | 1050 | /* Lockless fast path for the non-corking case. */ |
1051 | if (!corkreq) { | 1051 | if (!corkreq) { |
1052 | skb = ip_make_skb(sk, fl4, getfrag, msg->msg_iov, ulen, | 1052 | skb = ip_make_skb(sk, fl4, getfrag, msg, ulen, |
1053 | sizeof(struct udphdr), &ipc, &rt, | 1053 | sizeof(struct udphdr), &ipc, &rt, |
1054 | msg->msg_flags); | 1054 | msg->msg_flags); |
1055 | err = PTR_ERR(skb); | 1055 | err = PTR_ERR(skb); |
@@ -1080,7 +1080,7 @@ back_from_confirm: | |||
1080 | 1080 | ||
1081 | do_append_data: | 1081 | do_append_data: |
1082 | up->len += ulen; | 1082 | up->len += ulen; |
1083 | err = ip_append_data(sk, fl4, getfrag, msg->msg_iov, ulen, | 1083 | err = ip_append_data(sk, fl4, getfrag, msg, ulen, |
1084 | sizeof(struct udphdr), &ipc, &rt, | 1084 | sizeof(struct udphdr), &ipc, &rt, |
1085 | corkreq ? msg->msg_flags|MSG_MORE : msg->msg_flags); | 1085 | corkreq ? msg->msg_flags|MSG_MORE : msg->msg_flags); |
1086 | if (err) | 1086 | if (err) |
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 942f67b91274..11a9283fda51 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -727,7 +727,7 @@ static int raw6_getfrag(void *from, char *to, int offset, int len, int odd, | |||
727 | 727 | ||
728 | offset -= rfv->hlen; | 728 | offset -= rfv->hlen; |
729 | 729 | ||
730 | return ip_generic_getfrag(rfv->msg->msg_iov, to, offset, len, odd, skb); | 730 | return ip_generic_getfrag(rfv->msg, to, offset, len, odd, skb); |
731 | } | 731 | } |
732 | 732 | ||
733 | static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk, | 733 | static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk, |
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 7f96432292ce..189dc4ae3eca 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -1312,7 +1312,7 @@ do_append_data: | |||
1312 | dontfrag = np->dontfrag; | 1312 | dontfrag = np->dontfrag; |
1313 | up->len += ulen; | 1313 | up->len += ulen; |
1314 | getfrag = is_udplite ? udplite_getfrag : ip_generic_getfrag; | 1314 | getfrag = is_udplite ? udplite_getfrag : ip_generic_getfrag; |
1315 | err = ip6_append_data(sk, getfrag, msg->msg_iov, ulen, | 1315 | err = ip6_append_data(sk, getfrag, msg, ulen, |
1316 | sizeof(struct udphdr), hlimit, tclass, opt, &fl6, | 1316 | sizeof(struct udphdr), hlimit, tclass, opt, &fl6, |
1317 | (struct rt6_info *)dst, | 1317 | (struct rt6_info *)dst, |
1318 | corkreq ? msg->msg_flags|MSG_MORE : msg->msg_flags, dontfrag); | 1318 | corkreq ? msg->msg_flags|MSG_MORE : msg->msg_flags, dontfrag); |
diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c index 2177b960da87..8611f1b63141 100644 --- a/net/l2tp/l2tp_ip6.c +++ b/net/l2tp/l2tp_ip6.c | |||
@@ -619,7 +619,7 @@ static int l2tp_ip6_sendmsg(struct kiocb *iocb, struct sock *sk, | |||
619 | 619 | ||
620 | back_from_confirm: | 620 | back_from_confirm: |
621 | lock_sock(sk); | 621 | lock_sock(sk); |
622 | err = ip6_append_data(sk, ip_generic_getfrag, msg->msg_iov, | 622 | err = ip6_append_data(sk, ip_generic_getfrag, msg, |
623 | ulen, transhdrlen, hlimit, tclass, opt, | 623 | ulen, transhdrlen, hlimit, tclass, opt, |
624 | &fl6, (struct rt6_info *)dst, | 624 | &fl6, (struct rt6_info *)dst, |
625 | msg->msg_flags, dontfrag); | 625 | msg->msg_flags, dontfrag); |