@@ -202,7 +202,7 @@ mISDN_sock_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
if (!skb)
goto done;
- if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
+ if (skb_memcpy_from_msg(skb, msg, len)) {
err = -EFAULT;
goto done;
}
@@ -1469,7 +1469,7 @@ static int irda_recvmsg_stream(struct socket *sock, struct msghdr *msg,
}
chunk = min_t(unsigned int, skb->len, size);
- if (memcpy_to_msg(msg, skb->data, chunk)) {
+ if (skb_memcpy_to_msg(msg, skb, chunk)) {
skb_queue_head(&sk->sk_receive_queue, skb);
if (copied == 0)
copied = -EFAULT;
@@ -3294,6 +3294,16 @@ int skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci);
struct sk_buff *pskb_extract(struct sk_buff *skb, int off, int to_copy,
gfp_t gfp);
+static inline int skb_memcpy_from_msg(struct sk_buff *skb, struct msghdr *msg, int len)
+{
+ return memcpy_from_msg(skb_put(skb, len), msg, len);
+}
+
+static inline int skb_memcpy_to_msg(struct msghdr *msg, struct sk_buff *skb, int len)
+{
+ return memcpy_to_msg(msg, skb->data, len);
+}
+
struct skb_checksum_ops {
__wsum (*update)(const void *mem, int len, __wsum wsum);
__wsum (*combine)(__wsum csum, __wsum csum2, int offset, int len);
@@ -1658,7 +1658,7 @@ static int atalk_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
SOCK_DEBUG(sk, "SK %p: Copy user data (%zd bytes).\n", sk, len);
- err = memcpy_from_msg(skb_put(skb, len), msg, len);
+ err = skb_memcpy_from_msg(skb, msg, len);
if (err) {
kfree_skb(skb);
err = -EFAULT;
@@ -1552,7 +1552,7 @@ static int ax25_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
skb_reserve(skb, size - len);
/* User data follows immediately after the AX.25 data */
- if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
+ if (skb_memcpy_from_msg(skb, msg, len)) {
err = -EFAULT;
kfree_skb(skb);
goto out;
@@ -1601,7 +1601,7 @@ static int hci_logging_frame(struct sock *sk, struct msghdr *msg, int len)
if (!skb)
return err;
- if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
+ if (skb_memcpy_from_msg(skb, msg, len)) {
err = -EFAULT;
goto drop;
}
@@ -1726,7 +1726,7 @@ static int hci_sock_sendmsg(struct socket *sock, struct msghdr *msg,
if (!skb)
goto done;
- if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
+ if (skb_memcpy_from_msg(skb, msg, len)) {
err = -EFAULT;
goto drop;
}
@@ -594,7 +594,7 @@ static int rfcomm_sock_sendmsg(struct socket *sock, struct msghdr *msg,
}
skb_reserve(skb, RFCOMM_SKB_HEAD_RESERVE);
- err = memcpy_from_msg(skb_put(skb, size), msg, size);
+ err = skb_memcpy_from_msg(skb, msg, size);
if (err) {
kfree_skb(skb);
if (sent == 0)
@@ -288,7 +288,7 @@ static int sco_send_frame(struct sock *sk, struct msghdr *msg, int len)
if (!skb)
return err;
- if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
+ if (skb_memcpy_from_msg(skb, msg, len)) {
kfree_skb(skb);
return -EFAULT;
}
@@ -422,7 +422,7 @@ static int caif_stream_recvmsg(struct socket *sock, struct msghdr *msg,
}
release_sock(sk);
chunk = min_t(unsigned int, skb->len, size);
- if (memcpy_to_msg(msg, skb->data, chunk)) {
+ if (skb_memcpy_to_msg(msg, skb, chunk)) {
skb_queue_head(&sk->sk_receive_queue, skb);
if (copied == 0)
copied = -EFAULT;
@@ -570,7 +570,7 @@ static int caif_seqpkt_sendmsg(struct socket *sock, struct msghdr *msg,
skb_reserve(skb, cf_sk->headroom);
- ret = memcpy_from_msg(skb_put(skb, len), msg, len);
+ ret = skb_memcpy_from_msg(skb, msg, len);
if (ret)
goto err;
@@ -645,7 +645,7 @@ static int caif_stream_sendmsg(struct socket *sock, struct msghdr *msg,
*/
size = min_t(int, size, skb_tailroom(skb));
- err = memcpy_from_msg(skb_put(skb, size), msg, size);
+ err = skb_memcpy_from_msg(skb, msg, size);
if (err) {
kfree_skb(skb);
goto out_err;
@@ -1269,7 +1269,7 @@ static int bcm_tx_send(struct msghdr *msg, int ifindex, struct sock *sk,
can_skb_reserve(skb);
- err = memcpy_from_msg(skb_put(skb, cfsiz), msg, cfsiz);
+ err = skb_memcpy_from_msg(skb, msg, cfsiz);
if (err < 0) {
kfree_skb(skb);
return err;
@@ -1642,7 +1642,7 @@ static int bcm_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
if (skb->len < size)
size = skb->len;
- err = memcpy_to_msg(msg, skb->data, size);
+ err = skb_memcpy_to_msg(msg, skb, size);
if (err < 0) {
skb_free_datagram(sk, skb);
return err;
@@ -766,7 +766,7 @@ static int raw_sendmsg(struct socket *sock, struct msghdr *msg, size_t size)
can_skb_prv(skb)->ifindex = dev->ifindex;
can_skb_prv(skb)->skbcnt = 0;
- err = memcpy_from_msg(skb_put(skb, size), msg, size);
+ err = skb_memcpy_from_msg(skb, msg, size);
if (err < 0)
goto free_skb;
@@ -813,7 +813,7 @@ static int raw_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
else
size = skb->len;
- err = memcpy_to_msg(msg, skb->data, size);
+ err = skb_memcpy_to_msg(msg, skb, size);
if (err < 0) {
skb_free_datagram(sk, skb);
return err;
@@ -785,7 +785,7 @@ int dccp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
goto out_release;
skb_reserve(skb, sk->sk_prot->max_header);
- rc = memcpy_from_msg(skb_put(skb, len), msg, len);
+ rc = skb_memcpy_from_msg(skb, msg, len);
if (rc != 0)
goto out_discard;
@@ -1765,7 +1765,7 @@ static int dn_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
if ((chunk + copied) > size)
chunk = size - copied;
- if (memcpy_to_msg(msg, skb->data, chunk)) {
+ if (skb_memcpy_to_msg(msg, skb, chunk)) {
rv = -EFAULT;
break;
}
@@ -2036,7 +2036,7 @@ static int dn_sendmsg(struct socket *sock, struct msghdr *msg, size_t size)
skb_reserve(skb, 64 + DN_MAX_NSP_DATA_HEADER);
- if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
+ if (skb_memcpy_from_msg(skb, msg, len)) {
err = -EFAULT;
goto out;
}
@@ -296,7 +296,7 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
skb_reset_mac_header(skb);
skb_reset_network_header(skb);
- err = memcpy_from_msg(skb_put(skb, size), msg, size);
+ err = skb_memcpy_from_msg(skb, msg, size);
if (err < 0)
goto out_skb;
@@ -684,7 +684,7 @@ static int dgram_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
if (err < 0)
goto out_skb;
- err = memcpy_from_msg(skb_put(skb, size), msg, size);
+ err = skb_memcpy_from_msg(skb, msg, size);
if (err < 0)
goto out_skb;
@@ -229,7 +229,7 @@ int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx,
memcpy(ipx->ipx_dest.node, usipx->sipx_node, IPX_NODE_LEN);
ipx->ipx_dest.sock = usipx->sipx_port;
- rc = memcpy_from_msg(skb_put(skb, len), msg, len);
+ rc = skb_memcpy_from_msg(skb, msg, len);
if (rc) {
kfree_skb(skb);
goto out_put;
@@ -3637,7 +3637,7 @@ static int pfkey_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
goto out;
err = -EFAULT;
- if (memcpy_from_msg(skb_put(skb,len), msg, len))
+ if (skb_memcpy_from_msg(skb, msg, len))
goto out;
hdr = pfkey_get_base_msg(skb, &err);
@@ -458,7 +458,7 @@ static int l2tp_ip_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
*((__be32 *) skb_put(skb, 4)) = 0;
/* Copy user data into skb */
- rc = memcpy_from_msg(skb_put(skb, len), msg, len);
+ rc = skb_memcpy_from_msg(skb, msg, len);
if (rc < 0) {
kfree_skb(skb);
goto error;
@@ -329,7 +329,7 @@ static int pppol2tp_sendmsg(struct socket *sock, struct msghdr *m,
skb_put(skb, 2);
/* Copy user data into skb */
- error = memcpy_from_msg(skb_put(skb, total_len), m, total_len);
+ error = skb_memcpy_from_msg(skb, m, total_len);
if (error < 0) {
kfree_skb(skb);
goto error_put_sess_tun;
@@ -928,7 +928,7 @@ static int llc_ui_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
skb->dev = llc->dev;
skb->protocol = llc_proto_type(addr->sllc_arphrd);
skb_reserve(skb, hdrlen);
- rc = memcpy_from_msg(skb_put(skb, copied), msg, copied);
+ rc = skb_memcpy_from_msg(skb, msg, copied);
if (rc)
goto out;
if (sk->sk_type == SOCK_DGRAM || addr->sllc_ua) {
@@ -1844,7 +1844,7 @@ static int netlink_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
NETLINK_CB(skb).flags = netlink_skb_flags;
err = -EFAULT;
- if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
+ if (skb_memcpy_from_msg(skb, msg, len)) {
kfree_skb(skb);
goto out;
}
@@ -230,7 +230,7 @@ static int rawsock_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
if (skb == NULL)
return rc;
- rc = memcpy_from_msg(skb_put(skb, len), msg, len);
+ rc = skb_memcpy_from_msg(skb, msg, len);
if (rc < 0) {
kfree_skb(skb);
return rc;
@@ -1972,7 +1972,7 @@ static int packet_sendmsg_spkt(struct socket *sock, struct msghdr *msg,
if (len < hhlen)
skb_reset_network_header(skb);
}
- err = memcpy_from_msg(skb_put(skb, len), msg, len);
+ err = skb_memcpy_from_msg(skb, msg, len);
if (err)
goto out_free;
goto retry;
@@ -108,7 +108,7 @@ static int pn_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
return err;
skb_reserve(skb, MAX_PHONET_HEADER);
- err = memcpy_from_msg((void *)skb_put(skb, len), msg, len);
+ err = skb_memcpy_from_msg(skb, msg, len);
if (err < 0) {
kfree_skb(skb);
return err;
@@ -1143,7 +1143,7 @@ static int pep_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
return err;
skb_reserve(skb, MAX_PHONET_HEADER + 3 + pn->aligned);
- err = memcpy_from_msg(skb_put(skb, len), msg, len);
+ err = skb_memcpy_from_msg(skb, msg, len);
if (err < 0)
goto outfree;