diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-03-27 17:55:52 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:28:23 -0400 |
commit | d626f62b11e00c16e81e4308ab93d3f13551812a (patch) | |
tree | fac4af6ced853755e12fc709d55f0c2bec51265d /net/netrom | |
parent | 2a123b86e2b242a4a6db990d2851d45e192f88e5 (diff) |
[SK_BUFF]: Introduce skb_copy_from_linear_data{_offset}
To clearly state the intent of copying from linear sk_buffs, _offset being a
overly long variant but interesting for the sake of saving some bytes.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'net/netrom')
-rw-r--r-- | net/netrom/af_netrom.c | 3 | ||||
-rw-r--r-- | net/netrom/nr_loopback.c | 2 | ||||
-rw-r--r-- | net/netrom/nr_out.c | 4 | ||||
-rw-r--r-- | net/netrom/nr_subr.c | 4 |
4 files changed, 7 insertions, 6 deletions
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index 053fa26ff90a..5dc7448925db 100644 --- a/net/netrom/af_netrom.c +++ b/net/netrom/af_netrom.c | |||
@@ -1160,7 +1160,8 @@ static int nr_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
1160 | 1160 | ||
1161 | if (sax != NULL) { | 1161 | if (sax != NULL) { |
1162 | sax->sax25_family = AF_NETROM; | 1162 | sax->sax25_family = AF_NETROM; |
1163 | memcpy(sax->sax25_call.ax25_call, skb->data + 7, AX25_ADDR_LEN); | 1163 | skb_copy_from_linear_data_offset(skb, 7, sax->sax25_call.ax25_call, |
1164 | AX25_ADDR_LEN); | ||
1164 | } | 1165 | } |
1165 | 1166 | ||
1166 | msg->msg_namelen = sizeof(*sax); | 1167 | msg->msg_namelen = sizeof(*sax); |
diff --git a/net/netrom/nr_loopback.c b/net/netrom/nr_loopback.c index 99fdab16ded0..f324d5df4186 100644 --- a/net/netrom/nr_loopback.c +++ b/net/netrom/nr_loopback.c | |||
@@ -34,7 +34,7 @@ int nr_loopback_queue(struct sk_buff *skb) | |||
34 | struct sk_buff *skbn; | 34 | struct sk_buff *skbn; |
35 | 35 | ||
36 | if ((skbn = alloc_skb(skb->len, GFP_ATOMIC)) != NULL) { | 36 | if ((skbn = alloc_skb(skb->len, GFP_ATOMIC)) != NULL) { |
37 | memcpy(skb_put(skbn, skb->len), skb->data, skb->len); | 37 | skb_copy_from_linear_data(skb, skb_put(skbn, skb->len), skb->len); |
38 | skb_reset_transport_header(skbn); | 38 | skb_reset_transport_header(skbn); |
39 | 39 | ||
40 | skb_queue_tail(&loopback_queue, skbn); | 40 | skb_queue_tail(&loopback_queue, skbn); |
diff --git a/net/netrom/nr_out.c b/net/netrom/nr_out.c index 0cbfb611465b..7c467c95c7d6 100644 --- a/net/netrom/nr_out.c +++ b/net/netrom/nr_out.c | |||
@@ -40,7 +40,7 @@ void nr_output(struct sock *sk, struct sk_buff *skb) | |||
40 | 40 | ||
41 | if (skb->len - NR_TRANSPORT_LEN > NR_MAX_PACKET_SIZE) { | 41 | if (skb->len - NR_TRANSPORT_LEN > NR_MAX_PACKET_SIZE) { |
42 | /* Save a copy of the Transport Header */ | 42 | /* Save a copy of the Transport Header */ |
43 | memcpy(transport, skb->data, NR_TRANSPORT_LEN); | 43 | skb_copy_from_linear_data(skb, transport, NR_TRANSPORT_LEN); |
44 | skb_pull(skb, NR_TRANSPORT_LEN); | 44 | skb_pull(skb, NR_TRANSPORT_LEN); |
45 | 45 | ||
46 | frontlen = skb_headroom(skb); | 46 | frontlen = skb_headroom(skb); |
@@ -54,7 +54,7 @@ void nr_output(struct sock *sk, struct sk_buff *skb) | |||
54 | len = (NR_MAX_PACKET_SIZE > skb->len) ? skb->len : NR_MAX_PACKET_SIZE; | 54 | len = (NR_MAX_PACKET_SIZE > skb->len) ? skb->len : NR_MAX_PACKET_SIZE; |
55 | 55 | ||
56 | /* Copy the user data */ | 56 | /* Copy the user data */ |
57 | memcpy(skb_put(skbn, len), skb->data, len); | 57 | skb_copy_from_linear_data(skb, skb_put(skbn, len), len); |
58 | skb_pull(skb, len); | 58 | skb_pull(skb, len); |
59 | 59 | ||
60 | /* Duplicate the Transport Header */ | 60 | /* Duplicate the Transport Header */ |
diff --git a/net/netrom/nr_subr.c b/net/netrom/nr_subr.c index 07b694d18870..04e7d0d2fd8f 100644 --- a/net/netrom/nr_subr.c +++ b/net/netrom/nr_subr.c | |||
@@ -226,13 +226,13 @@ void __nr_transmit_reply(struct sk_buff *skb, int mine, unsigned char cmdflags) | |||
226 | 226 | ||
227 | dptr = skb_put(skbn, NR_NETWORK_LEN + NR_TRANSPORT_LEN); | 227 | dptr = skb_put(skbn, NR_NETWORK_LEN + NR_TRANSPORT_LEN); |
228 | 228 | ||
229 | memcpy(dptr, skb->data + 7, AX25_ADDR_LEN); | 229 | skb_copy_from_linear_data_offset(skb, 7, dptr, AX25_ADDR_LEN); |
230 | dptr[6] &= ~AX25_CBIT; | 230 | dptr[6] &= ~AX25_CBIT; |
231 | dptr[6] &= ~AX25_EBIT; | 231 | dptr[6] &= ~AX25_EBIT; |
232 | dptr[6] |= AX25_SSSID_SPARE; | 232 | dptr[6] |= AX25_SSSID_SPARE; |
233 | dptr += AX25_ADDR_LEN; | 233 | dptr += AX25_ADDR_LEN; |
234 | 234 | ||
235 | memcpy(dptr, skb->data + 0, AX25_ADDR_LEN); | 235 | skb_copy_from_linear_data(skb, dptr, AX25_ADDR_LEN); |
236 | dptr[6] &= ~AX25_CBIT; | 236 | dptr[6] &= ~AX25_CBIT; |
237 | dptr[6] |= AX25_EBIT; | 237 | dptr[6] |= AX25_EBIT; |
238 | dptr[6] |= AX25_SSSID_SPARE; | 238 | dptr[6] |= AX25_SSSID_SPARE; |