Commit 27d7ff46 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo Committed by David S. Miller
Browse files

[SK_BUFF]: Introduce skb_copy_to_linear_data{_offset}


To clearly state the intent of copying to linear sk_buffs, _offset being a
overly long variant but interesting for the sake of saving some bytes.
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@ghostprotocols.net>
parent 3dbad80a
...@@ -464,7 +464,7 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err) ...@@ -464,7 +464,7 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
msg_set_size(rmsg, data_sz + hdr_sz); msg_set_size(rmsg, data_sz + hdr_sz);
msg_set_nametype(rmsg, msg_nametype(msg)); msg_set_nametype(rmsg, msg_nametype(msg));
msg_set_nameinst(rmsg, msg_nameinst(msg)); msg_set_nameinst(rmsg, msg_nameinst(msg));
memcpy(rbuf->data + hdr_sz, msg_data(msg), data_sz); skb_copy_to_linear_data_offset(rbuf, hdr_sz, msg_data(msg), data_sz);
/* send self-abort message when rejecting on a connected port */ /* send self-abort message when rejecting on a connected port */
if (msg_connected(msg)) { if (msg_connected(msg)) {
...@@ -1419,7 +1419,7 @@ int tipc_send_buf(u32 ref, struct sk_buff *buf, unsigned int dsz) ...@@ -1419,7 +1419,7 @@ int tipc_send_buf(u32 ref, struct sk_buff *buf, unsigned int dsz)
return -ENOMEM; return -ENOMEM;
skb_push(buf, hsz); skb_push(buf, hsz);
memcpy(buf->data, (unchar *)msg, hsz); skb_copy_to_linear_data(buf, msg, hsz);
destnode = msg_destnode(msg); destnode = msg_destnode(msg);
p_ptr->publ.congested = 1; p_ptr->publ.congested = 1;
if (!tipc_port_congested(p_ptr)) { if (!tipc_port_congested(p_ptr)) {
...@@ -1555,7 +1555,7 @@ int tipc_forward_buf2name(u32 ref, ...@@ -1555,7 +1555,7 @@ int tipc_forward_buf2name(u32 ref,
if (skb_cow(buf, LONG_H_SIZE)) if (skb_cow(buf, LONG_H_SIZE))
return -ENOMEM; return -ENOMEM;
skb_push(buf, LONG_H_SIZE); skb_push(buf, LONG_H_SIZE);
memcpy(buf->data, (unchar *)msg, LONG_H_SIZE); skb_copy_to_linear_data(buf, msg, LONG_H_SIZE);
msg_dbg(buf_msg(buf),"PREP:"); msg_dbg(buf_msg(buf),"PREP:");
if (likely(destport || destnode)) { if (likely(destport || destnode)) {
p_ptr->sent++; p_ptr->sent++;
...@@ -1679,7 +1679,7 @@ int tipc_forward_buf2port(u32 ref, ...@@ -1679,7 +1679,7 @@ int tipc_forward_buf2port(u32 ref,
return -ENOMEM; return -ENOMEM;
skb_push(buf, DIR_MSG_H_SIZE); skb_push(buf, DIR_MSG_H_SIZE);
memcpy(buf->data, (unchar *)msg, DIR_MSG_H_SIZE); skb_copy_to_linear_data(buf, msg, DIR_MSG_H_SIZE);
msg_dbg(msg, "buf2port: "); msg_dbg(msg, "buf2port: ");
p_ptr->sent++; p_ptr->sent++;
if (dest->node == tipc_own_addr) if (dest->node == tipc_own_addr)
......
...@@ -277,8 +277,8 @@ int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev, ...@@ -277,8 +277,8 @@ int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev,
skb_push(skb, 7); skb_push(skb, 7);
skb->data[0] = 0; skb->data[0] = 0;
skb->data[1] = NLPID_SNAP; skb->data[1] = NLPID_SNAP;
memcpy(&skb->data[2], wanrouter_oui_ether, skb_copy_to_linear_data_offset(skb, 2, wanrouter_oui_ether,
sizeof(wanrouter_oui_ether)); sizeof(wanrouter_oui_ether));
*((unsigned short*)&skb->data[5]) = htons(type); *((unsigned short*)&skb->data[5]) = htons(type);
break; break;
......
...@@ -89,7 +89,7 @@ int x25_output(struct sock *sk, struct sk_buff *skb) ...@@ -89,7 +89,7 @@ int x25_output(struct sock *sk, struct sk_buff *skb)
/* Duplicate the Header */ /* Duplicate the Header */
skb_push(skbn, header_len); skb_push(skbn, header_len);
memcpy(skbn->data, header, header_len); skb_copy_to_linear_data(skbn, header, header_len);
if (skb->len > 0) { if (skb->len > 0) {
if (x25->neighbour->extended) if (x25->neighbour->extended)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment