Commit 6ce8e9ce5989ae13f493062975304700be86d20e
1 parent
227158db16
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
new helper: memcpy_from_msg()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Showing 36 changed files with 57 additions and 57 deletions Side-by-side Diff
- crypto/algif_skcipher.c
- drivers/isdn/mISDN/socket.c
- drivers/net/ppp/pppoe.c
- include/linux/skbuff.h
- include/net/sctp/sm.h
- net/appletalk/ddp.c
- net/ax25/af_ax25.c
- net/bluetooth/hci_sock.c
- net/bluetooth/mgmt.c
- net/bluetooth/rfcomm/sock.c
- net/bluetooth/sco.c
- net/caif/caif_socket.c
- net/can/bcm.c
- net/can/raw.c
- net/dccp/proto.c
- net/decnet/af_decnet.c
- net/ieee802154/dgram.c
- net/ieee802154/raw.c
- net/ipv4/ping.c
- net/ipv4/tcp_input.c
- net/irda/af_irda.c
- net/iucv/af_iucv.c
- net/key/af_key.c
- net/l2tp/l2tp_ip.c
- net/l2tp/l2tp_ppp.c
- net/llc/af_llc.c
- net/netlink/af_netlink.c
- net/netrom/af_netrom.c
- net/nfc/llcp_commands.c
- net/nfc/rawsock.c
- net/packet/af_packet.c
- net/phonet/datagram.c
- net/phonet/pep.c
- net/rose/af_rose.c
- net/sctp/sm_make_chunk.c
- net/x25/af_x25.c
crypto/algif_skcipher.c
... | ... | @@ -298,9 +298,9 @@ |
298 | 298 | len = min_t(unsigned long, len, |
299 | 299 | PAGE_SIZE - sg->offset - sg->length); |
300 | 300 | |
301 | - err = memcpy_fromiovec(page_address(sg_page(sg)) + | |
302 | - sg->offset + sg->length, | |
303 | - msg->msg_iov, len); | |
301 | + err = memcpy_from_msg(page_address(sg_page(sg)) + | |
302 | + sg->offset + sg->length, | |
303 | + msg, len); | |
304 | 304 | if (err) |
305 | 305 | goto unlock; |
306 | 306 | |
... | ... | @@ -337,8 +337,8 @@ |
337 | 337 | if (!sg_page(sg + i)) |
338 | 338 | goto unlock; |
339 | 339 | |
340 | - err = memcpy_fromiovec(page_address(sg_page(sg + i)), | |
341 | - msg->msg_iov, plen); | |
340 | + err = memcpy_from_msg(page_address(sg_page(sg + i)), | |
341 | + msg, plen); | |
342 | 342 | if (err) { |
343 | 343 | __free_page(sg_page(sg + i)); |
344 | 344 | sg_assign_page(sg + i, NULL); |
drivers/isdn/mISDN/socket.c
drivers/net/ppp/pppoe.c
... | ... | @@ -869,7 +869,7 @@ |
869 | 869 | ph = (struct pppoe_hdr *)skb_put(skb, total_len + sizeof(struct pppoe_hdr)); |
870 | 870 | start = (char *)&ph->tag[0]; |
871 | 871 | |
872 | - error = memcpy_fromiovec(start, m->msg_iov, total_len); | |
872 | + error = memcpy_from_msg(start, m, total_len); | |
873 | 873 | if (error < 0) { |
874 | 874 | kfree_skb(skb); |
875 | 875 | goto end; |
include/linux/skbuff.h
... | ... | @@ -2687,6 +2687,11 @@ |
2687 | 2687 | int skb_vlan_pop(struct sk_buff *skb); |
2688 | 2688 | int skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci); |
2689 | 2689 | |
2690 | +static inline int memcpy_from_msg(void *data, struct msghdr *msg, int len) | |
2691 | +{ | |
2692 | + return memcpy_fromiovec(data, msg->msg_iov, len); | |
2693 | +} | |
2694 | + | |
2690 | 2695 | struct skb_checksum_ops { |
2691 | 2696 | __wsum (*update)(const void *mem, int len, __wsum wsum); |
2692 | 2697 | __wsum (*combine)(__wsum csum, __wsum csum2, int offset, int len); |
include/net/sctp/sm.h
... | ... | @@ -219,7 +219,7 @@ |
219 | 219 | const struct sctp_chunk *, |
220 | 220 | __u32 tsn); |
221 | 221 | struct sctp_chunk *sctp_make_abort_user(const struct sctp_association *, |
222 | - const struct msghdr *, size_t msg_len); | |
222 | + struct msghdr *, size_t msg_len); | |
223 | 223 | struct sctp_chunk *sctp_make_abort_violation(const struct sctp_association *, |
224 | 224 | const struct sctp_chunk *, |
225 | 225 | const __u8 *, |
net/appletalk/ddp.c
... | ... | @@ -1659,7 +1659,7 @@ |
1659 | 1659 | |
1660 | 1660 | SOCK_DEBUG(sk, "SK %p: Copy user data (%Zd bytes).\n", sk, len); |
1661 | 1661 | |
1662 | - err = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len); | |
1662 | + err = memcpy_from_msg(skb_put(skb, len), msg, len); | |
1663 | 1663 | if (err) { |
1664 | 1664 | kfree_skb(skb); |
1665 | 1665 | err = -EFAULT; |
net/ax25/af_ax25.c
... | ... | @@ -1549,7 +1549,7 @@ |
1549 | 1549 | skb_reserve(skb, size - len); |
1550 | 1550 | |
1551 | 1551 | /* User data follows immediately after the AX.25 data */ |
1552 | - if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { | |
1552 | + if (memcpy_from_msg(skb_put(skb, len), msg, len)) { | |
1553 | 1553 | err = -EFAULT; |
1554 | 1554 | kfree_skb(skb); |
1555 | 1555 | goto out; |
net/bluetooth/hci_sock.c
net/bluetooth/mgmt.c
net/bluetooth/rfcomm/sock.c
net/bluetooth/sco.c
net/caif/caif_socket.c
... | ... | @@ -566,7 +566,7 @@ |
566 | 566 | |
567 | 567 | skb_reserve(skb, cf_sk->headroom); |
568 | 568 | |
569 | - ret = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len); | |
569 | + ret = memcpy_from_msg(skb_put(skb, len), msg, len); | |
570 | 570 | |
571 | 571 | if (ret) |
572 | 572 | goto err; |
... | ... | @@ -641,7 +641,7 @@ |
641 | 641 | */ |
642 | 642 | size = min_t(int, size, skb_tailroom(skb)); |
643 | 643 | |
644 | - err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size); | |
644 | + err = memcpy_from_msg(skb_put(skb, size), msg, size); | |
645 | 645 | if (err) { |
646 | 646 | kfree_skb(skb); |
647 | 647 | goto out_err; |
net/can/bcm.c
... | ... | @@ -858,8 +858,7 @@ |
858 | 858 | |
859 | 859 | /* update can_frames content */ |
860 | 860 | for (i = 0; i < msg_head->nframes; i++) { |
861 | - err = memcpy_fromiovec((u8 *)&op->frames[i], | |
862 | - msg->msg_iov, CFSIZ); | |
861 | + err = memcpy_from_msg((u8 *)&op->frames[i], msg, CFSIZ); | |
863 | 862 | |
864 | 863 | if (op->frames[i].can_dlc > 8) |
865 | 864 | err = -EINVAL; |
... | ... | @@ -894,8 +893,7 @@ |
894 | 893 | op->frames = &op->sframe; |
895 | 894 | |
896 | 895 | for (i = 0; i < msg_head->nframes; i++) { |
897 | - err = memcpy_fromiovec((u8 *)&op->frames[i], | |
898 | - msg->msg_iov, CFSIZ); | |
896 | + err = memcpy_from_msg((u8 *)&op->frames[i], msg, CFSIZ); | |
899 | 897 | |
900 | 898 | if (op->frames[i].can_dlc > 8) |
901 | 899 | err = -EINVAL; |
... | ... | @@ -1024,9 +1022,8 @@ |
1024 | 1022 | |
1025 | 1023 | if (msg_head->nframes) { |
1026 | 1024 | /* update can_frames content */ |
1027 | - err = memcpy_fromiovec((u8 *)op->frames, | |
1028 | - msg->msg_iov, | |
1029 | - msg_head->nframes * CFSIZ); | |
1025 | + err = memcpy_from_msg((u8 *)op->frames, msg, | |
1026 | + msg_head->nframes * CFSIZ); | |
1030 | 1027 | if (err < 0) |
1031 | 1028 | return err; |
1032 | 1029 | |
... | ... | @@ -1072,8 +1069,8 @@ |
1072 | 1069 | } |
1073 | 1070 | |
1074 | 1071 | if (msg_head->nframes) { |
1075 | - err = memcpy_fromiovec((u8 *)op->frames, msg->msg_iov, | |
1076 | - msg_head->nframes * CFSIZ); | |
1072 | + err = memcpy_from_msg((u8 *)op->frames, msg, | |
1073 | + msg_head->nframes * CFSIZ); | |
1077 | 1074 | if (err < 0) { |
1078 | 1075 | if (op->frames != &op->sframe) |
1079 | 1076 | kfree(op->frames); |
... | ... | @@ -1209,7 +1206,7 @@ |
1209 | 1206 | |
1210 | 1207 | can_skb_reserve(skb); |
1211 | 1208 | |
1212 | - err = memcpy_fromiovec(skb_put(skb, CFSIZ), msg->msg_iov, CFSIZ); | |
1209 | + err = memcpy_from_msg(skb_put(skb, CFSIZ), msg, CFSIZ); | |
1213 | 1210 | if (err < 0) { |
1214 | 1211 | kfree_skb(skb); |
1215 | 1212 | return err; |
... | ... | @@ -1285,7 +1282,7 @@ |
1285 | 1282 | |
1286 | 1283 | /* read message head information */ |
1287 | 1284 | |
1288 | - ret = memcpy_fromiovec((u8 *)&msg_head, msg->msg_iov, MHSIZ); | |
1285 | + ret = memcpy_from_msg((u8 *)&msg_head, msg, MHSIZ); | |
1289 | 1286 | if (ret < 0) |
1290 | 1287 | return ret; |
1291 | 1288 |
net/can/raw.c
net/dccp/proto.c
net/decnet/af_decnet.c
net/ieee802154/dgram.c
net/ieee802154/raw.c
net/ipv4/ping.c
... | ... | @@ -660,7 +660,7 @@ |
660 | 660 | * Fetch the ICMP header provided by the userland. |
661 | 661 | * iovec is modified! The ICMP header is consumed. |
662 | 662 | */ |
663 | - if (memcpy_fromiovec(user_icmph, msg->msg_iov, icmph_len)) | |
663 | + if (memcpy_from_msg(user_icmph, msg, icmph_len)) | |
664 | 664 | return -EFAULT; |
665 | 665 | |
666 | 666 | if (family == AF_INET) { |
net/ipv4/tcp_input.c
... | ... | @@ -4368,7 +4368,7 @@ |
4368 | 4368 | if (tcp_try_rmem_schedule(sk, skb, skb->truesize)) |
4369 | 4369 | goto err_free; |
4370 | 4370 | |
4371 | - if (memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size)) | |
4371 | + if (memcpy_from_msg(skb_put(skb, size), msg, size)) | |
4372 | 4372 | goto err_free; |
4373 | 4373 | |
4374 | 4374 | TCP_SKB_CB(skb)->seq = tcp_sk(sk)->rcv_nxt; |
net/irda/af_irda.c
... | ... | @@ -1319,7 +1319,7 @@ |
1319 | 1319 | skb_reserve(skb, self->max_header_size + 16); |
1320 | 1320 | skb_reset_transport_header(skb); |
1321 | 1321 | skb_put(skb, len); |
1322 | - err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len); | |
1322 | + err = memcpy_from_msg(skb_transport_header(skb), msg, len); | |
1323 | 1323 | if (err) { |
1324 | 1324 | kfree_skb(skb); |
1325 | 1325 | goto out_err; |
... | ... | @@ -1569,7 +1569,7 @@ |
1569 | 1569 | |
1570 | 1570 | pr_debug("%s(), appending user data\n", __func__); |
1571 | 1571 | skb_put(skb, len); |
1572 | - err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len); | |
1572 | + err = memcpy_from_msg(skb_transport_header(skb), msg, len); | |
1573 | 1573 | if (err) { |
1574 | 1574 | kfree_skb(skb); |
1575 | 1575 | goto out; |
... | ... | @@ -1678,7 +1678,7 @@ |
1678 | 1678 | |
1679 | 1679 | pr_debug("%s(), appending user data\n", __func__); |
1680 | 1680 | skb_put(skb, len); |
1681 | - err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len); | |
1681 | + err = memcpy_from_msg(skb_transport_header(skb), msg, len); | |
1682 | 1682 | if (err) { |
1683 | 1683 | kfree_skb(skb); |
1684 | 1684 | goto out; |
net/iucv/af_iucv.c
... | ... | @@ -1122,7 +1122,7 @@ |
1122 | 1122 | } |
1123 | 1123 | if (iucv->transport == AF_IUCV_TRANS_HIPER) |
1124 | 1124 | skb_reserve(skb, sizeof(struct af_iucv_trans_hdr) + ETH_HLEN); |
1125 | - if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { | |
1125 | + if (memcpy_from_msg(skb_put(skb, len), msg, len)) { | |
1126 | 1126 | err = -EFAULT; |
1127 | 1127 | goto fail; |
1128 | 1128 | } |
net/key/af_key.c
net/l2tp/l2tp_ip.c
... | ... | @@ -441,7 +441,7 @@ |
441 | 441 | *((__be32 *) skb_put(skb, 4)) = 0; |
442 | 442 | |
443 | 443 | /* Copy user data into skb */ |
444 | - rc = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len); | |
444 | + rc = memcpy_from_msg(skb_put(skb, len), msg, len); | |
445 | 445 | if (rc < 0) { |
446 | 446 | kfree_skb(skb); |
447 | 447 | goto error; |
net/l2tp/l2tp_ppp.c
... | ... | @@ -346,8 +346,7 @@ |
346 | 346 | skb_put(skb, 2); |
347 | 347 | |
348 | 348 | /* Copy user data into skb */ |
349 | - error = memcpy_fromiovec(skb_put(skb, total_len), m->msg_iov, | |
350 | - total_len); | |
349 | + error = memcpy_from_msg(skb_put(skb, total_len), m, total_len); | |
351 | 350 | if (error < 0) { |
352 | 351 | kfree_skb(skb); |
353 | 352 | goto error_put_sess_tun; |
net/llc/af_llc.c
... | ... | @@ -921,7 +921,7 @@ |
921 | 921 | skb->dev = llc->dev; |
922 | 922 | skb->protocol = llc_proto_type(addr->sllc_arphrd); |
923 | 923 | skb_reserve(skb, hdrlen); |
924 | - rc = memcpy_fromiovec(skb_put(skb, copied), msg->msg_iov, copied); | |
924 | + rc = memcpy_from_msg(skb_put(skb, copied), msg, copied); | |
925 | 925 | if (rc) |
926 | 926 | goto out; |
927 | 927 | if (sk->sk_type == SOCK_DGRAM || addr->sllc_ua) { |
net/netlink/af_netlink.c
... | ... | @@ -2325,7 +2325,7 @@ |
2325 | 2325 | NETLINK_CB(skb).flags = netlink_skb_flags; |
2326 | 2326 | |
2327 | 2327 | err = -EFAULT; |
2328 | - if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { | |
2328 | + if (memcpy_from_msg(skb_put(skb, len), msg, len)) { | |
2329 | 2329 | kfree_skb(skb); |
2330 | 2330 | goto out; |
2331 | 2331 | } |
net/netrom/af_netrom.c
... | ... | @@ -1113,7 +1113,7 @@ |
1113 | 1113 | skb_put(skb, len); |
1114 | 1114 | |
1115 | 1115 | /* User data follows immediately after the NET/ROM transport header */ |
1116 | - if (memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len)) { | |
1116 | + if (memcpy_from_msg(skb_transport_header(skb), msg, len)) { | |
1117 | 1117 | kfree_skb(skb); |
1118 | 1118 | err = -EFAULT; |
1119 | 1119 | goto out; |
net/nfc/llcp_commands.c
... | ... | @@ -665,7 +665,7 @@ |
665 | 665 | if (msg_data == NULL) |
666 | 666 | return -ENOMEM; |
667 | 667 | |
668 | - if (memcpy_fromiovec(msg_data, msg->msg_iov, len)) { | |
668 | + if (memcpy_from_msg(msg_data, msg, len)) { | |
669 | 669 | kfree(msg_data); |
670 | 670 | return -EFAULT; |
671 | 671 | } |
... | ... | @@ -731,7 +731,7 @@ |
731 | 731 | if (msg_data == NULL) |
732 | 732 | return -ENOMEM; |
733 | 733 | |
734 | - if (memcpy_fromiovec(msg_data, msg->msg_iov, len)) { | |
734 | + if (memcpy_from_msg(msg_data, msg, len)) { | |
735 | 735 | kfree(msg_data); |
736 | 736 | return -EFAULT; |
737 | 737 | } |
net/nfc/rawsock.c
net/packet/af_packet.c
... | ... | @@ -1676,7 +1676,7 @@ |
1676 | 1676 | if (len < hhlen) |
1677 | 1677 | skb_reset_network_header(skb); |
1678 | 1678 | } |
1679 | - err = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len); | |
1679 | + err = memcpy_from_msg(skb_put(skb, len), msg, len); | |
1680 | 1680 | if (err) |
1681 | 1681 | goto out_free; |
1682 | 1682 | goto retry; |
... | ... | @@ -2446,8 +2446,7 @@ |
2446 | 2446 | |
2447 | 2447 | len -= vnet_hdr_len; |
2448 | 2448 | |
2449 | - err = memcpy_fromiovec((void *)&vnet_hdr, msg->msg_iov, | |
2450 | - vnet_hdr_len); | |
2449 | + err = memcpy_from_msg((void *)&vnet_hdr, msg, vnet_hdr_len); | |
2451 | 2450 | if (err < 0) |
2452 | 2451 | goto out_unlock; |
2453 | 2452 |
net/phonet/datagram.c
... | ... | @@ -109,7 +109,7 @@ |
109 | 109 | return err; |
110 | 110 | skb_reserve(skb, MAX_PHONET_HEADER); |
111 | 111 | |
112 | - err = memcpy_fromiovec((void *)skb_put(skb, len), msg->msg_iov, len); | |
112 | + err = memcpy_from_msg((void *)skb_put(skb, len), msg, len); | |
113 | 113 | if (err < 0) { |
114 | 114 | kfree_skb(skb); |
115 | 115 | return err; |
net/phonet/pep.c
... | ... | @@ -1141,7 +1141,7 @@ |
1141 | 1141 | return err; |
1142 | 1142 | |
1143 | 1143 | skb_reserve(skb, MAX_PHONET_HEADER + 3 + pn->aligned); |
1144 | - err = memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len); | |
1144 | + err = memcpy_from_msg(skb_put(skb, len), msg, len); | |
1145 | 1145 | if (err < 0) |
1146 | 1146 | goto outfree; |
1147 | 1147 |
net/rose/af_rose.c
... | ... | @@ -1121,7 +1121,7 @@ |
1121 | 1121 | skb_reset_transport_header(skb); |
1122 | 1122 | skb_put(skb, len); |
1123 | 1123 | |
1124 | - err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len); | |
1124 | + err = memcpy_from_msg(skb_transport_header(skb), msg, len); | |
1125 | 1125 | if (err) { |
1126 | 1126 | kfree_skb(skb); |
1127 | 1127 | return err; |
net/sctp/sm_make_chunk.c
... | ... | @@ -1001,7 +1001,7 @@ |
1001 | 1001 | |
1002 | 1002 | /* Helper to create ABORT with a SCTP_ERROR_USER_ABORT error. */ |
1003 | 1003 | struct sctp_chunk *sctp_make_abort_user(const struct sctp_association *asoc, |
1004 | - const struct msghdr *msg, | |
1004 | + struct msghdr *msg, | |
1005 | 1005 | size_t paylen) |
1006 | 1006 | { |
1007 | 1007 | struct sctp_chunk *retval; |
... | ... | @@ -1018,7 +1018,7 @@ |
1018 | 1018 | if (!payload) |
1019 | 1019 | goto err_payload; |
1020 | 1020 | |
1021 | - err = memcpy_fromiovec(payload, msg->msg_iov, paylen); | |
1021 | + err = memcpy_from_msg(payload, msg, paylen); | |
1022 | 1022 | if (err < 0) |
1023 | 1023 | goto err_copy; |
1024 | 1024 | } |
net/x25/af_x25.c
... | ... | @@ -1170,7 +1170,7 @@ |
1170 | 1170 | skb_reset_transport_header(skb); |
1171 | 1171 | skb_put(skb, len); |
1172 | 1172 | |
1173 | - rc = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len); | |
1173 | + rc = memcpy_from_msg(skb_transport_header(skb), msg, len); | |
1174 | 1174 | if (rc) |
1175 | 1175 | goto out_kfree_skb; |
1176 | 1176 |