diff options
author | Johannes Berg <johannes.berg@intel.com> | 2017-06-16 08:29:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-16 11:48:37 -0400 |
commit | 59ae1d127ac0ae404baf414c434ba2651b793f46 (patch) | |
tree | 043e71496aa7a7db86bcc8219a3a51f533aac982 | |
parent | b080db585384b9f037e015c0c28d1ad33be41dfc (diff) |
networking: introduce and use skb_put_data()
A common pattern with skb_put() is to just want to memcpy()
some data into the new space, introduce skb_put_data() for
this.
An spatch similar to the one for skb_put_zero() converts many
of the places using it:
@@
identifier p, p2;
expression len, skb, data;
type t, t2;
@@
(
-p = skb_put(skb, len);
+p = skb_put_data(skb, data, len);
|
-p = (t)skb_put(skb, len);
+p = skb_put_data(skb, data, len);
)
(
p2 = (t2)p;
-memcpy(p2, data, len);
|
-memcpy(p, data, len);
)
@@
type t, t2;
identifier p, p2;
expression skb, data;
@@
t *p;
...
(
-p = skb_put(skb, sizeof(t));
+p = skb_put_data(skb, data, sizeof(t));
|
-p = (t *)skb_put(skb, sizeof(t));
+p = skb_put_data(skb, data, sizeof(t));
)
(
p2 = (t2)p;
-memcpy(p2, data, sizeof(*p));
|
-memcpy(p, data, sizeof(*p));
)
@@
expression skb, len, data;
@@
-memcpy(skb_put(skb, len), data, len);
+skb_put_data(skb, data, len);
(again, manually post-processed to retain some comments)
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
252 files changed, 622 insertions, 741 deletions
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c index 637c3e6b0f9e..7584ae1ded85 100644 --- a/drivers/atm/fore200e.c +++ b/drivers/atm/fore200e.c | |||
@@ -1104,7 +1104,7 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp | |||
1104 | /* Make device DMA transfer visible to CPU. */ | 1104 | /* Make device DMA transfer visible to CPU. */ |
1105 | fore200e->bus->dma_sync_for_cpu(fore200e, buffer->data.dma_addr, rpd->rsd[ i ].length, DMA_FROM_DEVICE); | 1105 | fore200e->bus->dma_sync_for_cpu(fore200e, buffer->data.dma_addr, rpd->rsd[ i ].length, DMA_FROM_DEVICE); |
1106 | 1106 | ||
1107 | memcpy(skb_put(skb, rpd->rsd[ i ].length), buffer->data.align_addr, rpd->rsd[ i ].length); | 1107 | skb_put_data(skb, buffer->data.align_addr, rpd->rsd[i].length); |
1108 | 1108 | ||
1109 | /* Now let the device get at it again. */ | 1109 | /* Now let the device get at it again. */ |
1110 | fore200e->bus->dma_sync_for_device(fore200e, buffer->data.dma_addr, rpd->rsd[ i ].length, DMA_FROM_DEVICE); | 1110 | fore200e->bus->dma_sync_for_device(fore200e, buffer->data.dma_addr, rpd->rsd[ i ].length, DMA_FROM_DEVICE); |
diff --git a/drivers/atm/he.c b/drivers/atm/he.c index 3617659b9184..461da2bce8ef 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c | |||
@@ -1735,7 +1735,7 @@ he_service_rbrq(struct he_dev *he_dev, int group) | |||
1735 | __net_timestamp(skb); | 1735 | __net_timestamp(skb); |
1736 | 1736 | ||
1737 | list_for_each_entry(heb, &he_vcc->buffers, entry) | 1737 | list_for_each_entry(heb, &he_vcc->buffers, entry) |
1738 | memcpy(skb_put(skb, heb->len), &heb->data, heb->len); | 1738 | skb_put_data(skb, &heb->data, heb->len); |
1739 | 1739 | ||
1740 | switch (vcc->qos.aal) { | 1740 | switch (vcc->qos.aal) { |
1741 | case ATM_AAL0: | 1741 | case ATM_AAL0: |
diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c index 5ec109533bb9..4e64de380bda 100644 --- a/drivers/atm/idt77252.c +++ b/drivers/atm/idt77252.c | |||
@@ -1090,8 +1090,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe) | |||
1090 | 1090 | ||
1091 | *((u32 *) sb->data) = aal0; | 1091 | *((u32 *) sb->data) = aal0; |
1092 | skb_put(sb, sizeof(u32)); | 1092 | skb_put(sb, sizeof(u32)); |
1093 | memcpy(skb_put(sb, ATM_CELL_PAYLOAD), | 1093 | skb_put_data(sb, cell, ATM_CELL_PAYLOAD); |
1094 | cell, ATM_CELL_PAYLOAD); | ||
1095 | 1094 | ||
1096 | ATM_SKB(sb)->vcc = vcc; | 1095 | ATM_SKB(sb)->vcc = vcc; |
1097 | __net_timestamp(sb); | 1096 | __net_timestamp(sb); |
@@ -1159,8 +1158,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe) | |||
1159 | return; | 1158 | return; |
1160 | } | 1159 | } |
1161 | skb_queue_walk(&rpp->queue, sb) | 1160 | skb_queue_walk(&rpp->queue, sb) |
1162 | memcpy(skb_put(skb, sb->len), | 1161 | skb_put_data(skb, sb->data, sb->len); |
1163 | sb->data, sb->len); | ||
1164 | 1162 | ||
1165 | recycle_rx_pool_skb(card, rpp); | 1163 | recycle_rx_pool_skb(card, rpp); |
1166 | 1164 | ||
@@ -1322,8 +1320,7 @@ idt77252_rx_raw(struct idt77252_dev *card) | |||
1322 | 1320 | ||
1323 | *((u32 *) sb->data) = header; | 1321 | *((u32 *) sb->data) = header; |
1324 | skb_put(sb, sizeof(u32)); | 1322 | skb_put(sb, sizeof(u32)); |
1325 | memcpy(skb_put(sb, ATM_CELL_PAYLOAD), &(queue->data[16]), | 1323 | skb_put_data(sb, &(queue->data[16]), ATM_CELL_PAYLOAD); |
1326 | ATM_CELL_PAYLOAD); | ||
1327 | 1324 | ||
1328 | ATM_SKB(sb)->vcc = vcc; | 1325 | ATM_SKB(sb)->vcc = vcc; |
1329 | __net_timestamp(sb); | 1326 | __net_timestamp(sb); |
@@ -2014,7 +2011,7 @@ idt77252_send_oam(struct atm_vcc *vcc, void *cell, int flags) | |||
2014 | } | 2011 | } |
2015 | atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc); | 2012 | atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc); |
2016 | 2013 | ||
2017 | memcpy(skb_put(skb, 52), cell, 52); | 2014 | skb_put_data(skb, cell, 52); |
2018 | 2015 | ||
2019 | return idt77252_send_skb(vcc, skb, 1); | 2016 | return idt77252_send_skb(vcc, skb, 1); |
2020 | } | 2017 | } |
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c index 9115b292e680..077dd15c3a40 100644 --- a/drivers/atm/solos-pci.c +++ b/drivers/atm/solos-pci.c | |||
@@ -493,7 +493,7 @@ static int send_command(struct solos_card *card, int dev, const char *buf, size_ | |||
493 | header->vci = cpu_to_le16(0); | 493 | header->vci = cpu_to_le16(0); |
494 | header->type = cpu_to_le16(PKT_COMMAND); | 494 | header->type = cpu_to_le16(PKT_COMMAND); |
495 | 495 | ||
496 | memcpy(skb_put(skb, size), buf, size); | 496 | skb_put_data(skb, buf, size); |
497 | 497 | ||
498 | fpga_queue(card, dev, skb, NULL); | 498 | fpga_queue(card, dev, skb, NULL); |
499 | 499 | ||
diff --git a/drivers/bluetooth/bfusb.c b/drivers/bluetooth/bfusb.c index 3bf4ec60e073..ab090a313a5f 100644 --- a/drivers/bluetooth/bfusb.c +++ b/drivers/bluetooth/bfusb.c | |||
@@ -335,7 +335,7 @@ static inline int bfusb_recv_block(struct bfusb_data *data, int hdr, unsigned ch | |||
335 | } | 335 | } |
336 | 336 | ||
337 | if (len > 0) | 337 | if (len > 0) |
338 | memcpy(skb_put(data->reassembly, len), buf, len); | 338 | skb_put_data(data->reassembly, buf, len); |
339 | 339 | ||
340 | if (hdr & 0x08) { | 340 | if (hdr & 0x08) { |
341 | hci_recv_frame(data->hdev, data->reassembly); | 341 | hci_recv_frame(data->hdev, data->reassembly); |
@@ -505,7 +505,7 @@ static int bfusb_send_frame(struct hci_dev *hdev, struct sk_buff *skb) | |||
505 | buf[1] = 0x00; | 505 | buf[1] = 0x00; |
506 | buf[2] = (size == BFUSB_MAX_BLOCK_SIZE) ? 0 : size; | 506 | buf[2] = (size == BFUSB_MAX_BLOCK_SIZE) ? 0 : size; |
507 | 507 | ||
508 | memcpy(skb_put(nskb, 3), buf, 3); | 508 | skb_put_data(nskb, buf, 3); |
509 | skb_copy_from_linear_data_offset(skb, sent, skb_put(nskb, size), size); | 509 | skb_copy_from_linear_data_offset(skb, sent, skb_put(nskb, size), size); |
510 | 510 | ||
511 | sent += size; | 511 | sent += size; |
@@ -516,7 +516,7 @@ static int bfusb_send_frame(struct hci_dev *hdev, struct sk_buff *skb) | |||
516 | if ((nskb->len % data->bulk_pkt_size) == 0) { | 516 | if ((nskb->len % data->bulk_pkt_size) == 0) { |
517 | buf[0] = 0xdd; | 517 | buf[0] = 0xdd; |
518 | buf[1] = 0x00; | 518 | buf[1] = 0x00; |
519 | memcpy(skb_put(nskb, 2), buf, 2); | 519 | skb_put_data(nskb, buf, 2); |
520 | } | 520 | } |
521 | 521 | ||
522 | read_lock(&data->lock); | 522 | read_lock(&data->lock); |
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c index 007c0a45f31b..1d30c116b2ee 100644 --- a/drivers/bluetooth/bluecard_cs.c +++ b/drivers/bluetooth/bluecard_cs.c | |||
@@ -597,7 +597,7 @@ static int bluecard_hci_set_baud_rate(struct hci_dev *hdev, int baud) | |||
597 | break; | 597 | break; |
598 | } | 598 | } |
599 | 599 | ||
600 | memcpy(skb_put(skb, sizeof(cmd)), cmd, sizeof(cmd)); | 600 | skb_put_data(skb, cmd, sizeof(cmd)); |
601 | 601 | ||
602 | skb_queue_tail(&(info->txq), skb); | 602 | skb_queue_tail(&(info->txq), skb); |
603 | 603 | ||
diff --git a/drivers/bluetooth/btmrvl_main.c b/drivers/bluetooth/btmrvl_main.c index c38cb5b91291..24a188eab360 100644 --- a/drivers/bluetooth/btmrvl_main.c +++ b/drivers/bluetooth/btmrvl_main.c | |||
@@ -194,7 +194,7 @@ static int btmrvl_send_sync_cmd(struct btmrvl_private *priv, u16 opcode, | |||
194 | hdr->plen = len; | 194 | hdr->plen = len; |
195 | 195 | ||
196 | if (len) | 196 | if (len) |
197 | memcpy(skb_put(skb, len), param, len); | 197 | skb_put_data(skb, param, len); |
198 | 198 | ||
199 | hci_skb_pkt_type(skb) = MRVL_VENDOR_PKT; | 199 | hci_skb_pkt_type(skb) = MRVL_VENDOR_PKT; |
200 | 200 | ||
diff --git a/drivers/bluetooth/btqcomsmd.c b/drivers/bluetooth/btqcomsmd.c index ef730c173d4b..d00c4fdae924 100644 --- a/drivers/bluetooth/btqcomsmd.c +++ b/drivers/bluetooth/btqcomsmd.c | |||
@@ -43,7 +43,7 @@ static int btqcomsmd_recv(struct hci_dev *hdev, unsigned int type, | |||
43 | } | 43 | } |
44 | 44 | ||
45 | hci_skb_pkt_type(skb) = type; | 45 | hci_skb_pkt_type(skb) = type; |
46 | memcpy(skb_put(skb, count), data, count); | 46 | skb_put_data(skb, data, count); |
47 | 47 | ||
48 | return hci_recv_frame(hdev, skb); | 48 | return hci_recv_frame(hdev, skb); |
49 | } | 49 | } |
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index bfd5f4bdec80..c7ea398e65c1 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c | |||
@@ -478,7 +478,7 @@ static int btusb_recv_intr(struct btusb_data *data, void *buffer, int count) | |||
478 | } | 478 | } |
479 | 479 | ||
480 | len = min_t(uint, hci_skb_expect(skb), count); | 480 | len = min_t(uint, hci_skb_expect(skb), count); |
481 | memcpy(skb_put(skb, len), buffer, len); | 481 | skb_put_data(skb, buffer, len); |
482 | 482 | ||
483 | count -= len; | 483 | count -= len; |
484 | buffer += len; | 484 | buffer += len; |
@@ -533,7 +533,7 @@ static int btusb_recv_bulk(struct btusb_data *data, void *buffer, int count) | |||
533 | } | 533 | } |
534 | 534 | ||
535 | len = min_t(uint, hci_skb_expect(skb), count); | 535 | len = min_t(uint, hci_skb_expect(skb), count); |
536 | memcpy(skb_put(skb, len), buffer, len); | 536 | skb_put_data(skb, buffer, len); |
537 | 537 | ||
538 | count -= len; | 538 | count -= len; |
539 | buffer += len; | 539 | buffer += len; |
@@ -590,7 +590,7 @@ static int btusb_recv_isoc(struct btusb_data *data, void *buffer, int count) | |||
590 | } | 590 | } |
591 | 591 | ||
592 | len = min_t(uint, hci_skb_expect(skb), count); | 592 | len = min_t(uint, hci_skb_expect(skb), count); |
593 | memcpy(skb_put(skb, len), buffer, len); | 593 | skb_put_data(skb, buffer, len); |
594 | 594 | ||
595 | count -= len; | 595 | count -= len; |
596 | buffer += len; | 596 | buffer += len; |
@@ -934,8 +934,8 @@ static void btusb_diag_complete(struct urb *urb) | |||
934 | 934 | ||
935 | skb = bt_skb_alloc(urb->actual_length, GFP_ATOMIC); | 935 | skb = bt_skb_alloc(urb->actual_length, GFP_ATOMIC); |
936 | if (skb) { | 936 | if (skb) { |
937 | memcpy(skb_put(skb, urb->actual_length), | 937 | skb_put_data(skb, urb->transfer_buffer, |
938 | urb->transfer_buffer, urb->actual_length); | 938 | urb->actual_length); |
939 | hci_recv_diag(hdev, skb); | 939 | hci_recv_diag(hdev, skb); |
940 | } | 940 | } |
941 | } else if (urb->status == -ENOENT) { | 941 | } else if (urb->status == -ENOENT) { |
@@ -2395,7 +2395,7 @@ static int marvell_config_oob_wake(struct hci_dev *hdev) | |||
2395 | return -ENOMEM; | 2395 | return -ENOMEM; |
2396 | } | 2396 | } |
2397 | 2397 | ||
2398 | memcpy(skb_put(skb, sizeof(cmd)), cmd, sizeof(cmd)); | 2398 | skb_put_data(skb, cmd, sizeof(cmd)); |
2399 | hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; | 2399 | hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; |
2400 | 2400 | ||
2401 | ret = btusb_send_frame(hdev, skb); | 2401 | ret = btusb_send_frame(hdev, skb); |
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c index 910ec968f022..d880f4e33c75 100644 --- a/drivers/bluetooth/hci_bcsp.c +++ b/drivers/bluetooth/hci_bcsp.c | |||
@@ -125,7 +125,7 @@ static void bcsp_slip_msgdelim(struct sk_buff *skb) | |||
125 | { | 125 | { |
126 | const char pkt_delim = 0xc0; | 126 | const char pkt_delim = 0xc0; |
127 | 127 | ||
128 | memcpy(skb_put(skb, 1), &pkt_delim, 1); | 128 | skb_put_data(skb, &pkt_delim, 1); |
129 | } | 129 | } |
130 | 130 | ||
131 | static void bcsp_slip_one_byte(struct sk_buff *skb, u8 c) | 131 | static void bcsp_slip_one_byte(struct sk_buff *skb, u8 c) |
@@ -135,13 +135,13 @@ static void bcsp_slip_one_byte(struct sk_buff *skb, u8 c) | |||
135 | 135 | ||
136 | switch (c) { | 136 | switch (c) { |
137 | case 0xc0: | 137 | case 0xc0: |
138 | memcpy(skb_put(skb, 2), &esc_c0, 2); | 138 | skb_put_data(skb, &esc_c0, 2); |
139 | break; | 139 | break; |
140 | case 0xdb: | 140 | case 0xdb: |
141 | memcpy(skb_put(skb, 2), &esc_db, 2); | 141 | skb_put_data(skb, &esc_db, 2); |
142 | break; | 142 | break; |
143 | default: | 143 | default: |
144 | memcpy(skb_put(skb, 1), &c, 1); | 144 | skb_put_data(skb, &c, 1); |
145 | } | 145 | } |
146 | } | 146 | } |
147 | 147 | ||
@@ -423,7 +423,7 @@ static void bcsp_handle_le_pkt(struct hci_uart *hu) | |||
423 | BT_DBG("Found a LE conf pkt"); | 423 | BT_DBG("Found a LE conf pkt"); |
424 | if (!nskb) | 424 | if (!nskb) |
425 | return; | 425 | return; |
426 | memcpy(skb_put(nskb, 4), conf_rsp_pkt, 4); | 426 | skb_put_data(nskb, conf_rsp_pkt, 4); |
427 | hci_skb_pkt_type(nskb) = BCSP_LE_PKT; | 427 | hci_skb_pkt_type(nskb) = BCSP_LE_PKT; |
428 | 428 | ||
429 | skb_queue_head(&bcsp->unrel, nskb); | 429 | skb_queue_head(&bcsp->unrel, nskb); |
@@ -447,7 +447,7 @@ static inline void bcsp_unslip_one_byte(struct bcsp_struct *bcsp, unsigned char | |||
447 | bcsp->rx_esc_state = BCSP_ESCSTATE_ESC; | 447 | bcsp->rx_esc_state = BCSP_ESCSTATE_ESC; |
448 | break; | 448 | break; |
449 | default: | 449 | default: |
450 | memcpy(skb_put(bcsp->rx_skb, 1), &byte, 1); | 450 | skb_put_data(bcsp->rx_skb, &byte, 1); |
451 | if ((bcsp->rx_skb->data[0] & 0x40) != 0 && | 451 | if ((bcsp->rx_skb->data[0] & 0x40) != 0 && |
452 | bcsp->rx_state != BCSP_W4_CRC) | 452 | bcsp->rx_state != BCSP_W4_CRC) |
453 | bcsp_crc_update(&bcsp->message_crc, byte); | 453 | bcsp_crc_update(&bcsp->message_crc, byte); |
@@ -458,7 +458,7 @@ static inline void bcsp_unslip_one_byte(struct bcsp_struct *bcsp, unsigned char | |||
458 | case BCSP_ESCSTATE_ESC: | 458 | case BCSP_ESCSTATE_ESC: |
459 | switch (byte) { | 459 | switch (byte) { |
460 | case 0xdc: | 460 | case 0xdc: |
461 | memcpy(skb_put(bcsp->rx_skb, 1), &c0, 1); | 461 | skb_put_data(bcsp->rx_skb, &c0, 1); |
462 | if ((bcsp->rx_skb->data[0] & 0x40) != 0 && | 462 | if ((bcsp->rx_skb->data[0] & 0x40) != 0 && |
463 | bcsp->rx_state != BCSP_W4_CRC) | 463 | bcsp->rx_state != BCSP_W4_CRC) |
464 | bcsp_crc_update(&bcsp->message_crc, 0xc0); | 464 | bcsp_crc_update(&bcsp->message_crc, 0xc0); |
@@ -467,7 +467,7 @@ static inline void bcsp_unslip_one_byte(struct bcsp_struct *bcsp, unsigned char | |||
467 | break; | 467 | break; |
468 | 468 | ||
469 | case 0xdd: | 469 | case 0xdd: |
470 | memcpy(skb_put(bcsp->rx_skb, 1), &db, 1); | 470 | skb_put_data(bcsp->rx_skb, &db, 1); |
471 | if ((bcsp->rx_skb->data[0] & 0x40) != 0 && | 471 | if ((bcsp->rx_skb->data[0] & 0x40) != 0 && |
472 | bcsp->rx_state != BCSP_W4_CRC) | 472 | bcsp->rx_state != BCSP_W4_CRC) |
473 | bcsp_crc_update(&bcsp->message_crc, 0xdb); | 473 | bcsp_crc_update(&bcsp->message_crc, 0xdb); |
diff --git a/drivers/bluetooth/hci_h4.c b/drivers/bluetooth/hci_h4.c index 82e5a32b87a4..4e328d7d47bb 100644 --- a/drivers/bluetooth/hci_h4.c +++ b/drivers/bluetooth/hci_h4.c | |||
@@ -209,7 +209,7 @@ struct sk_buff *h4_recv_buf(struct hci_dev *hdev, struct sk_buff *skb, | |||
209 | } | 209 | } |
210 | 210 | ||
211 | len = min_t(uint, hci_skb_expect(skb) - skb->len, count); | 211 | len = min_t(uint, hci_skb_expect(skb) - skb->len, count); |
212 | memcpy(skb_put(skb, len), buffer, len); | 212 | skb_put_data(skb, buffer, len); |
213 | 213 | ||
214 | count -= len; | 214 | count -= len; |
215 | buffer += len; | 215 | buffer += len; |
diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c index 90d0456b6744..c0e4e26dc30d 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c | |||
@@ -109,7 +109,7 @@ static void h5_link_control(struct hci_uart *hu, const void *data, size_t len) | |||
109 | 109 | ||
110 | hci_skb_pkt_type(nskb) = HCI_3WIRE_LINK_PKT; | 110 | hci_skb_pkt_type(nskb) = HCI_3WIRE_LINK_PKT; |
111 | 111 | ||
112 | memcpy(skb_put(nskb, len), data, len); | 112 | skb_put_data(nskb, data, len); |
113 | 113 | ||
114 | skb_queue_tail(&h5->unrel, nskb); | 114 | skb_queue_tail(&h5->unrel, nskb); |
115 | } | 115 | } |
@@ -487,7 +487,7 @@ static void h5_unslip_one_byte(struct h5 *h5, unsigned char c) | |||
487 | } | 487 | } |
488 | } | 488 | } |
489 | 489 | ||
490 | memcpy(skb_put(h5->rx_skb, 1), byte, 1); | 490 | skb_put_data(h5->rx_skb, byte, 1); |
491 | h5->rx_pending--; | 491 | h5->rx_pending--; |
492 | 492 | ||
493 | BT_DBG("unsliped 0x%02hhx, rx_pending %zu", *byte, h5->rx_pending); | 493 | BT_DBG("unsliped 0x%02hhx, rx_pending %zu", *byte, h5->rx_pending); |
@@ -579,7 +579,7 @@ static void h5_slip_delim(struct sk_buff *skb) | |||
579 | { | 579 | { |
580 | const char delim = SLIP_DELIMITER; | 580 | const char delim = SLIP_DELIMITER; |
581 | 581 | ||
582 | memcpy(skb_put(skb, 1), &delim, 1); | 582 | skb_put_data(skb, &delim, 1); |
583 | } | 583 | } |
584 | 584 | ||
585 | static void h5_slip_one_byte(struct sk_buff *skb, u8 c) | 585 | static void h5_slip_one_byte(struct sk_buff *skb, u8 c) |
@@ -589,13 +589,13 @@ static void h5_slip_one_byte(struct sk_buff *skb, u8 c) | |||
589 | 589 | ||
590 | switch (c) { | 590 | switch (c) { |
591 | case SLIP_DELIMITER: | 591 | case SLIP_DELIMITER: |
592 | memcpy(skb_put(skb, 2), &esc_delim, 2); | 592 | skb_put_data(skb, &esc_delim, 2); |
593 | break; | 593 | break; |
594 | case SLIP_ESC: | 594 | case SLIP_ESC: |
595 | memcpy(skb_put(skb, 2), &esc_esc, 2); | 595 | skb_put_data(skb, &esc_esc, 2); |
596 | break; | 596 | break; |
597 | default: | 597 | default: |
598 | memcpy(skb_put(skb, 1), &c, 1); | 598 | skb_put_data(skb, &c, 1); |
599 | } | 599 | } |
600 | } | 600 | } |
601 | 601 | ||
diff --git a/drivers/bluetooth/hci_intel.c b/drivers/bluetooth/hci_intel.c index 851bee82df2a..16e728577cd8 100644 --- a/drivers/bluetooth/hci_intel.c +++ b/drivers/bluetooth/hci_intel.c | |||
@@ -185,7 +185,7 @@ static int intel_lpm_suspend(struct hci_uart *hu) | |||
185 | return -ENOMEM; | 185 | return -ENOMEM; |
186 | } | 186 | } |
187 | 187 | ||
188 | memcpy(skb_put(skb, sizeof(suspend)), suspend, sizeof(suspend)); | 188 | skb_put_data(skb, suspend, sizeof(suspend)); |
189 | hci_skb_pkt_type(skb) = HCI_LPM_PKT; | 189 | hci_skb_pkt_type(skb) = HCI_LPM_PKT; |
190 | 190 | ||
191 | set_bit(STATE_LPM_TRANSACTION, &intel->flags); | 191 | set_bit(STATE_LPM_TRANSACTION, &intel->flags); |
@@ -270,8 +270,7 @@ static int intel_lpm_host_wake(struct hci_uart *hu) | |||
270 | return -ENOMEM; | 270 | return -ENOMEM; |
271 | } | 271 | } |
272 | 272 | ||
273 | memcpy(skb_put(skb, sizeof(lpm_resume_ack)), lpm_resume_ack, | 273 | skb_put_data(skb, lpm_resume_ack, sizeof(lpm_resume_ack)); |
274 | sizeof(lpm_resume_ack)); | ||
275 | hci_skb_pkt_type(skb) = HCI_LPM_PKT; | 274 | hci_skb_pkt_type(skb) = HCI_LPM_PKT; |
276 | 275 | ||
277 | /* LPM flow is a priority, enqueue packet at list head */ | 276 | /* LPM flow is a priority, enqueue packet at list head */ |
@@ -522,7 +521,7 @@ static int intel_set_baudrate(struct hci_uart *hu, unsigned int speed) | |||
522 | return -ENOMEM; | 521 | return -ENOMEM; |
523 | } | 522 | } |
524 | 523 | ||
525 | memcpy(skb_put(skb, sizeof(speed_cmd)), speed_cmd, sizeof(speed_cmd)); | 524 | skb_put_data(skb, speed_cmd, sizeof(speed_cmd)); |
526 | hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; | 525 | hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; |
527 | 526 | ||
528 | hci_uart_set_flow_control(hu, true); | 527 | hci_uart_set_flow_control(hu, true); |
diff --git a/drivers/bluetooth/hci_ll.c b/drivers/bluetooth/hci_ll.c index 2b16d48d82ee..cc2fa78b434e 100644 --- a/drivers/bluetooth/hci_ll.c +++ b/drivers/bluetooth/hci_ll.c | |||
@@ -413,7 +413,7 @@ static int ll_recv(struct hci_uart *hu, const void *data, int count) | |||
413 | while (count) { | 413 | while (count) { |
414 | if (ll->rx_count) { | 414 | if (ll->rx_count) { |
415 | len = min_t(unsigned int, ll->rx_count, count); | 415 | len = min_t(unsigned int, ll->rx_count, count); |
416 | memcpy(skb_put(ll->rx_skb, len), ptr, len); | 416 | skb_put_data(ll->rx_skb, ptr, len); |
417 | ll->rx_count -= len; count -= len; ptr += len; | 417 | ll->rx_count -= len; count -= len; ptr += len; |
418 | 418 | ||
419 | if (ll->rx_count) | 419 | if (ll->rx_count) |
diff --git a/drivers/bluetooth/hci_mrvl.c b/drivers/bluetooth/hci_mrvl.c index bbc4b39b1dbf..ffb00669346f 100644 --- a/drivers/bluetooth/hci_mrvl.c +++ b/drivers/bluetooth/hci_mrvl.c | |||
@@ -328,7 +328,7 @@ static int mrvl_load_firmware(struct hci_dev *hdev, const char *name) | |||
328 | } | 328 | } |
329 | bt_cb(skb)->pkt_type = MRVL_RAW_DATA; | 329 | bt_cb(skb)->pkt_type = MRVL_RAW_DATA; |
330 | 330 | ||
331 | memcpy(skb_put(skb, mrvl->tx_len), fw_ptr, mrvl->tx_len); | 331 | skb_put_data(skb, fw_ptr, mrvl->tx_len); |
332 | fw_ptr += mrvl->tx_len; | 332 | fw_ptr += mrvl->tx_len; |
333 | 333 | ||
334 | set_bit(STATE_FW_REQ_PENDING, &mrvl->flags); | 334 | set_bit(STATE_FW_REQ_PENDING, &mrvl->flags); |
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index f242dfd0c2e2..b55f01320631 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c | |||
@@ -869,7 +869,7 @@ static int qca_set_baudrate(struct hci_dev *hdev, uint8_t baudrate) | |||
869 | } | 869 | } |
870 | 870 | ||
871 | /* Assign commands to change baudrate and packet type. */ | 871 | /* Assign commands to change baudrate and packet type. */ |
872 | memcpy(skb_put(skb, sizeof(cmd)), cmd, sizeof(cmd)); | 872 | skb_put_data(skb, cmd, sizeof(cmd)); |
873 | hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; | 873 | hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; |
874 | 874 | ||
875 | skb_queue_tail(&qca->txq, skb); | 875 | skb_queue_tail(&qca->txq, skb); |
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c index d136db1a10f0..62be953e5fb0 100644 --- a/drivers/char/pcmcia/synclink_cs.c +++ b/drivers/char/pcmcia/synclink_cs.c | |||
@@ -4235,7 +4235,7 @@ static void hdlcdev_rx(MGSLPC_INFO *info, char *buf, int size) | |||
4235 | return; | 4235 | return; |
4236 | } | 4236 | } |
4237 | 4237 | ||
4238 | memcpy(skb_put(skb, size), buf, size); | 4238 | skb_put_data(skb, buf, size); |
4239 | 4239 | ||
4240 | skb->protocol = hdlc_type_trans(skb, dev); | 4240 | skb->protocol = hdlc_type_trans(skb, dev); |
4241 | 4241 | ||
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c index 5d3640264f2d..d5040bbd34e8 100644 --- a/drivers/firewire/net.c +++ b/drivers/firewire/net.c | |||
@@ -600,7 +600,7 @@ static int fwnet_incoming_packet(struct fwnet_device *dev, __be32 *buf, int len, | |||
600 | return -ENOMEM; | 600 | return -ENOMEM; |
601 | } | 601 | } |
602 | skb_reserve(skb, LL_RESERVED_SPACE(net)); | 602 | skb_reserve(skb, LL_RESERVED_SPACE(net)); |
603 | memcpy(skb_put(skb, len), buf, len); | 603 | skb_put_data(skb, buf, len); |
604 | 604 | ||
605 | return fwnet_finish_incoming_packet(net, skb, source_node_id, | 605 | return fwnet_finish_incoming_packet(net, skb, source_node_id, |
606 | is_broadcast, ether_type); | 606 | is_broadcast, ether_type); |
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index 6a2df3297e77..77be17590866 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c | |||
@@ -1058,7 +1058,7 @@ static int capinc_tty_write(struct tty_struct *tty, | |||
1058 | } | 1058 | } |
1059 | 1059 | ||
1060 | skb_reserve(skb, CAPI_DATA_B3_REQ_LEN); | 1060 | skb_reserve(skb, CAPI_DATA_B3_REQ_LEN); |
1061 | memcpy(skb_put(skb, count), buf, count); | 1061 | skb_put_data(skb, buf, count); |
1062 | 1062 | ||
1063 | __skb_queue_tail(&mp->outqueue, skb); | 1063 | __skb_queue_tail(&mp->outqueue, skb); |
1064 | mp->outbytes += skb->len; | 1064 | mp->outbytes += skb->len; |
diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c index 85cfa4f8691f..89dd1303a98a 100644 --- a/drivers/isdn/capi/capidrv.c +++ b/drivers/isdn/capi/capidrv.c | |||
@@ -516,7 +516,7 @@ static void send_message(capidrv_contr *card, _cmsg *cmsg) | |||
516 | printk(KERN_ERR "capidrv::send_message: can't allocate mem\n"); | 516 | printk(KERN_ERR "capidrv::send_message: can't allocate mem\n"); |
517 | return; | 517 | return; |
518 | } | 518 | } |
519 | memcpy(skb_put(skb, len), cmsg->buf, len); | 519 | skb_put_data(skb, cmsg->buf, len); |
520 | if (capi20_put_message(&global.ap, skb) != CAPI_NOERROR) | 520 | if (capi20_put_message(&global.ap, skb) != CAPI_NOERROR) |
521 | kfree_skb(skb); | 521 | kfree_skb(skb); |
522 | } | 522 | } |
diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c index 9fdbd99c7547..b1833d08a5fe 100644 --- a/drivers/isdn/hardware/avm/b1.c +++ b/drivers/isdn/hardware/avm/b1.c | |||
@@ -529,8 +529,8 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr) | |||
529 | printk(KERN_ERR "%s: incoming packet dropped\n", | 529 | printk(KERN_ERR "%s: incoming packet dropped\n", |
530 | card->name); | 530 | card->name); |
531 | } else { | 531 | } else { |
532 | memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); | 532 | skb_put_data(skb, card->msgbuf, MsgLen); |
533 | memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len); | 533 | skb_put_data(skb, card->databuf, DataB3Len); |
534 | capi_ctr_handle_message(ctrl, ApplId, skb); | 534 | capi_ctr_handle_message(ctrl, ApplId, skb); |
535 | } | 535 | } |
536 | break; | 536 | break; |
@@ -544,7 +544,7 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr) | |||
544 | card->name); | 544 | card->name); |
545 | spin_unlock_irqrestore(&card->lock, flags); | 545 | spin_unlock_irqrestore(&card->lock, flags); |
546 | } else { | 546 | } else { |
547 | memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); | 547 | skb_put_data(skb, card->msgbuf, MsgLen); |
548 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_CONF) | 548 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_CONF) |
549 | capilib_data_b3_conf(&cinfo->ncci_head, ApplId, | 549 | capilib_data_b3_conf(&cinfo->ncci_head, ApplId, |
550 | CAPIMSG_NCCI(skb->data), | 550 | CAPIMSG_NCCI(skb->data), |
diff --git a/drivers/isdn/hardware/avm/b1dma.c b/drivers/isdn/hardware/avm/b1dma.c index 818bd8f231db..9538a9e5e1a8 100644 --- a/drivers/isdn/hardware/avm/b1dma.c +++ b/drivers/isdn/hardware/avm/b1dma.c | |||
@@ -474,8 +474,8 @@ static void b1dma_handle_rx(avmcard *card) | |||
474 | printk(KERN_ERR "%s: incoming packet dropped\n", | 474 | printk(KERN_ERR "%s: incoming packet dropped\n", |
475 | card->name); | 475 | card->name); |
476 | } else { | 476 | } else { |
477 | memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); | 477 | skb_put_data(skb, card->msgbuf, MsgLen); |
478 | memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len); | 478 | skb_put_data(skb, card->databuf, DataB3Len); |
479 | capi_ctr_handle_message(ctrl, ApplId, skb); | 479 | capi_ctr_handle_message(ctrl, ApplId, skb); |
480 | } | 480 | } |
481 | break; | 481 | break; |
@@ -488,7 +488,7 @@ static void b1dma_handle_rx(avmcard *card) | |||
488 | printk(KERN_ERR "%s: incoming packet dropped\n", | 488 | printk(KERN_ERR "%s: incoming packet dropped\n", |
489 | card->name); | 489 | card->name); |
490 | } else { | 490 | } else { |
491 | memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); | 491 | skb_put_data(skb, card->msgbuf, MsgLen); |
492 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_CONF) { | 492 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_CONF) { |
493 | spin_lock(&card->lock); | 493 | spin_lock(&card->lock); |
494 | capilib_data_b3_conf(&cinfo->ncci_head, ApplId, | 494 | capilib_data_b3_conf(&cinfo->ncci_head, ApplId, |
diff --git a/drivers/isdn/hardware/avm/c4.c b/drivers/isdn/hardware/avm/c4.c index 17beb2869dc1..40c7e2cf423b 100644 --- a/drivers/isdn/hardware/avm/c4.c +++ b/drivers/isdn/hardware/avm/c4.c | |||
@@ -536,8 +536,8 @@ static void c4_handle_rx(avmcard *card) | |||
536 | printk(KERN_ERR "%s: incoming packet dropped\n", | 536 | printk(KERN_ERR "%s: incoming packet dropped\n", |
537 | card->name); | 537 | card->name); |
538 | } else { | 538 | } else { |
539 | memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); | 539 | skb_put_data(skb, card->msgbuf, MsgLen); |
540 | memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len); | 540 | skb_put_data(skb, card->databuf, DataB3Len); |
541 | capi_ctr_handle_message(ctrl, ApplId, skb); | 541 | capi_ctr_handle_message(ctrl, ApplId, skb); |
542 | } | 542 | } |
543 | break; | 543 | break; |
@@ -555,7 +555,7 @@ static void c4_handle_rx(avmcard *card) | |||
555 | printk(KERN_ERR "%s: incoming packet dropped\n", | 555 | printk(KERN_ERR "%s: incoming packet dropped\n", |
556 | card->name); | 556 | card->name); |
557 | } else { | 557 | } else { |
558 | memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); | 558 | skb_put_data(skb, card->msgbuf, MsgLen); |
559 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_CONF) | 559 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_CONF) |
560 | capilib_data_b3_conf(&cinfo->ncci_head, ApplId, | 560 | capilib_data_b3_conf(&cinfo->ncci_head, ApplId, |
561 | CAPIMSG_NCCI(skb->data), | 561 | CAPIMSG_NCCI(skb->data), |
diff --git a/drivers/isdn/hardware/avm/t1isa.c b/drivers/isdn/hardware/avm/t1isa.c index 9516203c735f..9f80d20ced87 100644 --- a/drivers/isdn/hardware/avm/t1isa.c +++ b/drivers/isdn/hardware/avm/t1isa.c | |||
@@ -171,8 +171,8 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr) | |||
171 | printk(KERN_ERR "%s: incoming packet dropped\n", | 171 | printk(KERN_ERR "%s: incoming packet dropped\n", |
172 | card->name); | 172 | card->name); |
173 | } else { | 173 | } else { |
174 | memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); | 174 | skb_put_data(skb, card->msgbuf, MsgLen); |
175 | memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len); | 175 | skb_put_data(skb, card->databuf, DataB3Len); |
176 | capi_ctr_handle_message(ctrl, ApplId, skb); | 176 | capi_ctr_handle_message(ctrl, ApplId, skb); |
177 | } | 177 | } |
178 | break; | 178 | break; |
@@ -186,7 +186,7 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr) | |||
186 | printk(KERN_ERR "%s: incoming packet dropped\n", | 186 | printk(KERN_ERR "%s: incoming packet dropped\n", |
187 | card->name); | 187 | card->name); |
188 | } else { | 188 | } else { |
189 | memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); | 189 | skb_put_data(skb, card->msgbuf, MsgLen); |
190 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3) | 190 | if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3) |
191 | capilib_data_b3_conf(&cinfo->ncci_head, ApplId, | 191 | capilib_data_b3_conf(&cinfo->ncci_head, ApplId, |
192 | CAPIMSG_NCCI(skb->data), | 192 | CAPIMSG_NCCI(skb->data), |
diff --git a/drivers/isdn/hardware/mISDN/hfcmulti.c b/drivers/isdn/hardware/mISDN/hfcmulti.c index 961c07ee47b7..aea0c9616ea5 100644 --- a/drivers/isdn/hardware/mISDN/hfcmulti.c +++ b/drivers/isdn/hardware/mISDN/hfcmulti.c | |||
@@ -1926,7 +1926,7 @@ hfcmulti_dtmf(struct hfc_multi *hc) | |||
1926 | hh = mISDN_HEAD_P(skb); | 1926 | hh = mISDN_HEAD_P(skb); |
1927 | hh->prim = PH_CONTROL_IND; | 1927 | hh->prim = PH_CONTROL_IND; |
1928 | hh->id = DTMF_HFC_COEF; | 1928 | hh->id = DTMF_HFC_COEF; |
1929 | memcpy(skb_put(skb, 512), hc->chan[ch].coeff, 512); | 1929 | skb_put_data(skb, hc->chan[ch].coeff, 512); |
1930 | recv_Bchannel_skb(bch, skb); | 1930 | recv_Bchannel_skb(bch, skb); |
1931 | } | 1931 | } |
1932 | } | 1932 | } |
@@ -2332,8 +2332,7 @@ next_frame: | |||
2332 | skb = *sp; | 2332 | skb = *sp; |
2333 | *sp = mI_alloc_skb(skb->len, GFP_ATOMIC); | 2333 | *sp = mI_alloc_skb(skb->len, GFP_ATOMIC); |
2334 | if (*sp) { | 2334 | if (*sp) { |
2335 | memcpy(skb_put(*sp, skb->len), | 2335 | skb_put_data(*sp, skb->data, skb->len); |
2336 | skb->data, skb->len); | ||
2337 | skb_trim(skb, 0); | 2336 | skb_trim(skb, 0); |
2338 | } else { | 2337 | } else { |
2339 | printk(KERN_DEBUG "%s: No mem\n", | 2338 | printk(KERN_DEBUG "%s: No mem\n", |
diff --git a/drivers/isdn/hardware/mISDN/hfcsusb.c b/drivers/isdn/hardware/mISDN/hfcsusb.c index 114f3bcba1b0..17cc879ad2bb 100644 --- a/drivers/isdn/hardware/mISDN/hfcsusb.c +++ b/drivers/isdn/hardware/mISDN/hfcsusb.c | |||
@@ -893,7 +893,7 @@ hfcsusb_rx_frame(struct usb_fifo *fifo, __u8 *data, unsigned int len, | |||
893 | } | 893 | } |
894 | } | 894 | } |
895 | 895 | ||
896 | memcpy(skb_put(rx_skb, len), data, len); | 896 | skb_put_data(rx_skb, data, len); |
897 | 897 | ||
898 | if (hdlc) { | 898 | if (hdlc) { |
899 | /* we have a complete hdlc packet */ | 899 | /* we have a complete hdlc packet */ |
diff --git a/drivers/isdn/hisax/amd7930_fn.c b/drivers/isdn/hisax/amd7930_fn.c index 3a4c2f9e19e9..dcf4c2a9fcea 100644 --- a/drivers/isdn/hisax/amd7930_fn.c +++ b/drivers/isdn/hisax/amd7930_fn.c | |||
@@ -317,7 +317,8 @@ Amd7930_empty_Dfifo(struct IsdnCardState *cs, int flag) | |||
317 | debugl1(cs, "%s", cs->dlog); | 317 | debugl1(cs, "%s", cs->dlog); |
318 | } | 318 | } |
319 | /* moves received data in sk-buffer */ | 319 | /* moves received data in sk-buffer */ |
320 | memcpy(skb_put(skb, cs->rcvidx), cs->rcvbuf, cs->rcvidx); | 320 | skb_put_data(skb, cs->rcvbuf, |
321 | cs->rcvidx); | ||
321 | skb_queue_tail(&cs->rq, skb); | 322 | skb_queue_tail(&cs->rq, skb); |
322 | } | 323 | } |
323 | } | 324 | } |
diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c index d1427bd6452d..daf3742cdef6 100644 --- a/drivers/isdn/hisax/avm_pci.c +++ b/drivers/isdn/hisax/avm_pci.c | |||
@@ -378,8 +378,9 @@ HDLC_irq(struct BCState *bcs, u_int stat) { | |||
378 | if (!(skb = dev_alloc_skb(bcs->hw.hdlc.rcvidx))) | 378 | if (!(skb = dev_alloc_skb(bcs->hw.hdlc.rcvidx))) |
379 | printk(KERN_WARNING "HDLC: receive out of memory\n"); | 379 | printk(KERN_WARNING "HDLC: receive out of memory\n"); |
380 | else { | 380 | else { |
381 | memcpy(skb_put(skb, bcs->hw.hdlc.rcvidx), | 381 | skb_put_data(skb, |
382 | bcs->hw.hdlc.rcvbuf, bcs->hw.hdlc.rcvidx); | 382 | bcs->hw.hdlc.rcvbuf, |
383 | bcs->hw.hdlc.rcvidx); | ||
383 | skb_queue_tail(&bcs->rqueue, skb); | 384 | skb_queue_tail(&bcs->rqueue, skb); |
384 | } | 385 | } |
385 | bcs->hw.hdlc.rcvidx = 0; | 386 | bcs->hw.hdlc.rcvidx = 0; |
diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c index 079336e593f9..3fc94e7741ae 100644 --- a/drivers/isdn/hisax/diva.c +++ b/drivers/isdn/hisax/diva.c | |||
@@ -511,7 +511,8 @@ Memhscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx) | |||
511 | if (!(skb = dev_alloc_skb(count))) | 511 | if (!(skb = dev_alloc_skb(count))) |
512 | printk(KERN_WARNING "HSCX: receive out of memory\n"); | 512 | printk(KERN_WARNING "HSCX: receive out of memory\n"); |
513 | else { | 513 | else { |
514 | memcpy(skb_put(skb, count), bcs->hw.hscx.rcvbuf, count); | 514 | skb_put_data(skb, bcs->hw.hscx.rcvbuf, |
515 | count); | ||
515 | skb_queue_tail(&bcs->rqueue, skb); | 516 | skb_queue_tail(&bcs->rqueue, skb); |
516 | } | 517 | } |
517 | } | 518 | } |
@@ -526,7 +527,8 @@ Memhscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx) | |||
526 | if (!(skb = dev_alloc_skb(fifo_size))) | 527 | if (!(skb = dev_alloc_skb(fifo_size))) |
527 | printk(KERN_WARNING "HiSax: receive out of memory\n"); | 528 | printk(KERN_WARNING "HiSax: receive out of memory\n"); |
528 | else { | 529 | else { |
529 | memcpy(skb_put(skb, fifo_size), bcs->hw.hscx.rcvbuf, fifo_size); | 530 | skb_put_data(skb, bcs->hw.hscx.rcvbuf, |
531 | fifo_size); | ||
530 | skb_queue_tail(&bcs->rqueue, skb); | 532 | skb_queue_tail(&bcs->rqueue, skb); |
531 | } | 533 | } |
532 | bcs->hw.hscx.rcvidx = 0; | 534 | bcs->hw.hscx.rcvidx = 0; |
diff --git a/drivers/isdn/hisax/elsa_ser.c b/drivers/isdn/hisax/elsa_ser.c index a2a358c1dc8e..999effd7a276 100644 --- a/drivers/isdn/hisax/elsa_ser.c +++ b/drivers/isdn/hisax/elsa_ser.c | |||
@@ -333,8 +333,8 @@ static inline void receive_chars(struct IsdnCardState *cs, | |||
333 | if (!(skb = dev_alloc_skb(cs->hw.elsa.rcvcnt))) | 333 | if (!(skb = dev_alloc_skb(cs->hw.elsa.rcvcnt))) |
334 | printk(KERN_WARNING "ElsaSER: receive out of memory\n"); | 334 | printk(KERN_WARNING "ElsaSER: receive out of memory\n"); |
335 | else { | 335 | else { |
336 | memcpy(skb_put(skb, cs->hw.elsa.rcvcnt), cs->hw.elsa.rcvbuf, | 336 | skb_put_data(skb, cs->hw.elsa.rcvbuf, |
337 | cs->hw.elsa.rcvcnt); | 337 | cs->hw.elsa.rcvcnt); |
338 | skb_queue_tail(&cs->hw.elsa.bcs->rqueue, skb); | 338 | skb_queue_tail(&cs->hw.elsa.bcs->rqueue, skb); |
339 | } | 339 | } |
340 | schedule_event(cs->hw.elsa.bcs, B_RCVBUFREADY); | 340 | schedule_event(cs->hw.elsa.bcs, B_RCVBUFREADY); |
diff --git a/drivers/isdn/hisax/hfc_usb.c b/drivers/isdn/hisax/hfc_usb.c index 6dbd1f1da14f..ef4748083efd 100644 --- a/drivers/isdn/hisax/hfc_usb.c +++ b/drivers/isdn/hisax/hfc_usb.c | |||
@@ -799,7 +799,7 @@ collect_rx_frame(usb_fifo *fifo, __u8 *data, int len, int finish) | |||
799 | } | 799 | } |
800 | if (len) { | 800 | if (len) { |
801 | if (fifo->skbuff->len + len < fifo->max_size) { | 801 | if (fifo->skbuff->len + len < fifo->max_size) { |
802 | memcpy(skb_put(fifo->skbuff, len), data, len); | 802 | skb_put_data(fifo->skbuff, data, len); |
803 | } else { | 803 | } else { |
804 | DBG(HFCUSB_DBG_FIFO_ERR, | 804 | DBG(HFCUSB_DBG_FIFO_ERR, |
805 | "HCF-USB: got frame exceeded fifo->max_size(%d) fifo(%d)", | 805 | "HCF-USB: got frame exceeded fifo->max_size(%d) fifo(%d)", |
diff --git a/drivers/isdn/hisax/hisax_fcpcipnp.c b/drivers/isdn/hisax/hisax_fcpcipnp.c index 5e8a5d967162..5a9f39ed1d5d 100644 --- a/drivers/isdn/hisax/hisax_fcpcipnp.c +++ b/drivers/isdn/hisax/hisax_fcpcipnp.c | |||
@@ -495,8 +495,7 @@ static inline void hdlc_rpr_irq(struct fritz_bcs *bcs, u32 stat) | |||
495 | if (!skb) { | 495 | if (!skb) { |
496 | printk(KERN_WARNING "HDLC: receive out of memory\n"); | 496 | printk(KERN_WARNING "HDLC: receive out of memory\n"); |
497 | } else { | 497 | } else { |
498 | memcpy(skb_put(skb, bcs->rcvidx), bcs->rcvbuf, | 498 | skb_put_data(skb, bcs->rcvbuf, bcs->rcvidx); |
499 | bcs->rcvidx); | ||
500 | DBG_SKB(1, skb); | 499 | DBG_SKB(1, skb); |
501 | B_L1L2(bcs, PH_DATA | INDICATION, skb); | 500 | B_L1L2(bcs, PH_DATA | INDICATION, skb); |
502 | } | 501 | } |
diff --git a/drivers/isdn/hisax/hisax_isac.c b/drivers/isdn/hisax/hisax_isac.c index 5154c252a25f..0f36375478c5 100644 --- a/drivers/isdn/hisax/hisax_isac.c +++ b/drivers/isdn/hisax/hisax_isac.c | |||
@@ -557,7 +557,7 @@ static inline void isac_rme_interrupt(struct isac *isac) | |||
557 | DBG(DBG_WARN, "no memory, dropping\n"); | 557 | DBG(DBG_WARN, "no memory, dropping\n"); |
558 | goto out; | 558 | goto out; |
559 | } | 559 | } |
560 | memcpy(skb_put(skb, count), isac->rcvbuf, count); | 560 | skb_put_data(skb, isac->rcvbuf, count); |
561 | DBG_SKB(DBG_RPACKET, skb); | 561 | DBG_SKB(DBG_RPACKET, skb); |
562 | D_L1L2(isac, PH_DATA | INDICATION, skb); | 562 | D_L1L2(isac, PH_DATA | INDICATION, skb); |
563 | out: | 563 | out: |
@@ -687,7 +687,7 @@ static inline void isacsx_rme_interrupt(struct isac *isac) | |||
687 | DBG(DBG_WARN, "no memory, dropping"); | 687 | DBG(DBG_WARN, "no memory, dropping"); |
688 | goto out; | 688 | goto out; |
689 | } | 689 | } |
690 | memcpy(skb_put(skb, count), isac->rcvbuf, count); | 690 | skb_put_data(skb, isac->rcvbuf, count); |
691 | DBG_SKB(DBG_RPACKET, skb); | 691 | DBG_SKB(DBG_RPACKET, skb); |
692 | D_L1L2(isac, PH_DATA | INDICATION, skb); | 692 | D_L1L2(isac, PH_DATA | INDICATION, skb); |
693 | out: | 693 | out: |
diff --git a/drivers/isdn/hisax/hscx_irq.c b/drivers/isdn/hisax/hscx_irq.c index a8d6188402c6..0d7e783c8bef 100644 --- a/drivers/isdn/hisax/hscx_irq.c +++ b/drivers/isdn/hisax/hscx_irq.c | |||
@@ -169,7 +169,8 @@ hscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx) | |||
169 | if (!(skb = dev_alloc_skb(count))) | 169 | if (!(skb = dev_alloc_skb(count))) |
170 | printk(KERN_WARNING "HSCX: receive out of memory\n"); | 170 | printk(KERN_WARNING "HSCX: receive out of memory\n"); |
171 | else { | 171 | else { |
172 | memcpy(skb_put(skb, count), bcs->hw.hscx.rcvbuf, count); | 172 | skb_put_data(skb, bcs->hw.hscx.rcvbuf, |
173 | count); | ||
173 | skb_queue_tail(&bcs->rqueue, skb); | 174 | skb_queue_tail(&bcs->rqueue, skb); |
174 | } | 175 | } |
175 | } | 176 | } |
@@ -184,7 +185,8 @@ hscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx) | |||
184 | if (!(skb = dev_alloc_skb(fifo_size))) | 185 | if (!(skb = dev_alloc_skb(fifo_size))) |
185 | printk(KERN_WARNING "HiSax: receive out of memory\n"); | 186 | printk(KERN_WARNING "HiSax: receive out of memory\n"); |
186 | else { | 187 | else { |
187 | memcpy(skb_put(skb, fifo_size), bcs->hw.hscx.rcvbuf, fifo_size); | 188 | skb_put_data(skb, bcs->hw.hscx.rcvbuf, |
189 | fifo_size); | ||
188 | skb_queue_tail(&bcs->rqueue, skb); | 190 | skb_queue_tail(&bcs->rqueue, skb); |
189 | } | 191 | } |
190 | bcs->hw.hscx.rcvidx = 0; | 192 | bcs->hw.hscx.rcvidx = 0; |
diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c index c7c3797a817e..8d1804572b32 100644 --- a/drivers/isdn/hisax/icc.c +++ b/drivers/isdn/hisax/icc.c | |||
@@ -217,7 +217,7 @@ icc_interrupt(struct IsdnCardState *cs, u_char val) | |||
217 | if (!(skb = alloc_skb(count, GFP_ATOMIC))) | 217 | if (!(skb = alloc_skb(count, GFP_ATOMIC))) |
218 | printk(KERN_WARNING "HiSax: D receive out of memory\n"); | 218 | printk(KERN_WARNING "HiSax: D receive out of memory\n"); |
219 | else { | 219 | else { |
220 | memcpy(skb_put(skb, count), cs->rcvbuf, count); | 220 | skb_put_data(skb, cs->rcvbuf, count); |
221 | skb_queue_tail(&cs->rq, skb); | 221 | skb_queue_tail(&cs->rq, skb); |
222 | } | 222 | } |
223 | } | 223 | } |
diff --git a/drivers/isdn/hisax/ipacx.c b/drivers/isdn/hisax/ipacx.c index 43effe7082ed..c426b4fea28a 100644 --- a/drivers/isdn/hisax/ipacx.c +++ b/drivers/isdn/hisax/ipacx.c | |||
@@ -350,7 +350,7 @@ dch_int(struct IsdnCardState *cs) | |||
350 | if (!(skb = dev_alloc_skb(count))) | 350 | if (!(skb = dev_alloc_skb(count))) |
351 | printk(KERN_WARNING "HiSax dch_int(): receive out of memory\n"); | 351 | printk(KERN_WARNING "HiSax dch_int(): receive out of memory\n"); |
352 | else { | 352 | else { |
353 | memcpy(skb_put(skb, count), cs->rcvbuf, count); | 353 | skb_put_data(skb, cs->rcvbuf, count); |
354 | skb_queue_tail(&cs->rq, skb); | 354 | skb_queue_tail(&cs->rq, skb); |
355 | } | 355 | } |
356 | } | 356 | } |
@@ -627,7 +627,8 @@ bch_int(struct IsdnCardState *cs, u_char hscx) | |||
627 | if (!(skb = dev_alloc_skb(count))) | 627 | if (!(skb = dev_alloc_skb(count))) |
628 | printk(KERN_WARNING "HiSax bch_int(): receive frame out of memory\n"); | 628 | printk(KERN_WARNING "HiSax bch_int(): receive frame out of memory\n"); |
629 | else { | 629 | else { |
630 | memcpy(skb_put(skb, count), bcs->hw.hscx.rcvbuf, count); | 630 | skb_put_data(skb, bcs->hw.hscx.rcvbuf, |
631 | count); | ||
631 | skb_queue_tail(&bcs->rqueue, skb); | 632 | skb_queue_tail(&bcs->rqueue, skb); |
632 | } | 633 | } |
633 | } | 634 | } |
@@ -644,7 +645,8 @@ bch_int(struct IsdnCardState *cs, u_char hscx) | |||
644 | if (!(skb = dev_alloc_skb(B_FIFO_SIZE))) | 645 | if (!(skb = dev_alloc_skb(B_FIFO_SIZE))) |
645 | printk(KERN_WARNING "HiSax bch_int(): receive transparent out of memory\n"); | 646 | printk(KERN_WARNING "HiSax bch_int(): receive transparent out of memory\n"); |
646 | else { | 647 | else { |
647 | memcpy(skb_put(skb, B_FIFO_SIZE), bcs->hw.hscx.rcvbuf, B_FIFO_SIZE); | 648 | skb_put_data(skb, bcs->hw.hscx.rcvbuf, |
649 | B_FIFO_SIZE); | ||
648 | skb_queue_tail(&bcs->rqueue, skb); | 650 | skb_queue_tail(&bcs->rqueue, skb); |
649 | } | 651 | } |
650 | bcs->hw.hscx.rcvidx = 0; | 652 | bcs->hw.hscx.rcvidx = 0; |
diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c index 4273b4548825..ea965f29a555 100644 --- a/drivers/isdn/hisax/isac.c +++ b/drivers/isdn/hisax/isac.c | |||
@@ -222,7 +222,7 @@ isac_interrupt(struct IsdnCardState *cs, u_char val) | |||
222 | if (!skb) | 222 | if (!skb) |
223 | printk(KERN_WARNING "HiSax: D receive out of memory\n"); | 223 | printk(KERN_WARNING "HiSax: D receive out of memory\n"); |
224 | else { | 224 | else { |
225 | memcpy(skb_put(skb, count), cs->rcvbuf, count); | 225 | skb_put_data(skb, cs->rcvbuf, count); |
226 | skb_queue_tail(&cs->rq, skb); | 226 | skb_queue_tail(&cs->rq, skb); |
227 | } | 227 | } |
228 | } | 228 | } |
diff --git a/drivers/isdn/hisax/isar.c b/drivers/isdn/hisax/isar.c index 0dc60b287c4b..98b4b67ea337 100644 --- a/drivers/isdn/hisax/isar.c +++ b/drivers/isdn/hisax/isar.c | |||
@@ -458,7 +458,7 @@ send_DLE_ETX(struct BCState *bcs) | |||
458 | struct sk_buff *skb; | 458 | struct sk_buff *skb; |
459 | 459 | ||
460 | if ((skb = dev_alloc_skb(2))) { | 460 | if ((skb = dev_alloc_skb(2))) { |
461 | memcpy(skb_put(skb, 2), dleetx, 2); | 461 | skb_put_data(skb, dleetx, 2); |
462 | skb_queue_tail(&bcs->rqueue, skb); | 462 | skb_queue_tail(&bcs->rqueue, skb); |
463 | schedule_event(bcs, B_RCVBUFREADY); | 463 | schedule_event(bcs, B_RCVBUFREADY); |
464 | } else { | 464 | } else { |
@@ -550,8 +550,8 @@ isar_rcv_frame(struct IsdnCardState *cs, struct BCState *bcs) | |||
550 | } else if (!(skb = dev_alloc_skb(bcs->hw.isar.rcvidx - 2))) { | 550 | } else if (!(skb = dev_alloc_skb(bcs->hw.isar.rcvidx - 2))) { |
551 | printk(KERN_WARNING "ISAR: receive out of memory\n"); | 551 | printk(KERN_WARNING "ISAR: receive out of memory\n"); |
552 | } else { | 552 | } else { |
553 | memcpy(skb_put(skb, bcs->hw.isar.rcvidx - 2), | 553 | skb_put_data(skb, bcs->hw.isar.rcvbuf, |
554 | bcs->hw.isar.rcvbuf, bcs->hw.isar.rcvidx - 2); | 554 | bcs->hw.isar.rcvidx - 2); |
555 | skb_queue_tail(&bcs->rqueue, skb); | 555 | skb_queue_tail(&bcs->rqueue, skb); |
556 | schedule_event(bcs, B_RCVBUFREADY); | 556 | schedule_event(bcs, B_RCVBUFREADY); |
557 | } | 557 | } |
diff --git a/drivers/isdn/hisax/isdnl2.c b/drivers/isdn/hisax/isdnl2.c index c53a53f6efb6..1a40ed04cb52 100644 --- a/drivers/isdn/hisax/isdnl2.c +++ b/drivers/isdn/hisax/isdnl2.c | |||
@@ -433,7 +433,7 @@ send_uframe(struct PStack *st, u_char cmd, u_char cr) | |||
433 | printk(KERN_WARNING "isdl2 can't alloc sbbuff for send_uframe\n"); | 433 | printk(KERN_WARNING "isdl2 can't alloc sbbuff for send_uframe\n"); |
434 | return; | 434 | return; |
435 | } | 435 | } |
436 | memcpy(skb_put(skb, i), tmp, i); | 436 | skb_put_data(skb, tmp, i); |
437 | enqueue_super(st, skb); | 437 | enqueue_super(st, skb); |
438 | } | 438 | } |
439 | 439 | ||
@@ -894,7 +894,7 @@ enquiry_cr(struct PStack *st, u_char typ, u_char cr, u_char pf) | |||
894 | printk(KERN_WARNING "isdl2 can't alloc sbbuff for enquiry_cr\n"); | 894 | printk(KERN_WARNING "isdl2 can't alloc sbbuff for enquiry_cr\n"); |
895 | return; | 895 | return; |
896 | } | 896 | } |
897 | memcpy(skb_put(skb, i), tmp, i); | 897 | skb_put_data(skb, tmp, i); |
898 | enqueue_super(st, skb); | 898 | enqueue_super(st, skb); |
899 | } | 899 | } |
900 | 900 | ||
diff --git a/drivers/isdn/hisax/jade_irq.c b/drivers/isdn/hisax/jade_irq.c index b930da9b5aa6..a89e2df911c5 100644 --- a/drivers/isdn/hisax/jade_irq.c +++ b/drivers/isdn/hisax/jade_irq.c | |||
@@ -147,7 +147,8 @@ jade_interrupt(struct IsdnCardState *cs, u_char val, u_char jade) | |||
147 | if (!(skb = dev_alloc_skb(count))) | 147 | if (!(skb = dev_alloc_skb(count))) |
148 | printk(KERN_WARNING "JADE %s receive out of memory\n", (jade ? "B" : "A")); | 148 | printk(KERN_WARNING "JADE %s receive out of memory\n", (jade ? "B" : "A")); |
149 | else { | 149 | else { |
150 | memcpy(skb_put(skb, count), bcs->hw.hscx.rcvbuf, count); | 150 | skb_put_data(skb, bcs->hw.hscx.rcvbuf, |
151 | count); | ||
151 | skb_queue_tail(&bcs->rqueue, skb); | 152 | skb_queue_tail(&bcs->rqueue, skb); |
152 | } | 153 | } |
153 | } | 154 | } |
@@ -162,7 +163,8 @@ jade_interrupt(struct IsdnCardState *cs, u_char val, u_char jade) | |||
162 | if (!(skb = dev_alloc_skb(fifo_size))) | 163 | if (!(skb = dev_alloc_skb(fifo_size))) |
163 | printk(KERN_WARNING "HiSax: receive out of memory\n"); | 164 | printk(KERN_WARNING "HiSax: receive out of memory\n"); |
164 | else { | 165 | else { |
165 | memcpy(skb_put(skb, fifo_size), bcs->hw.hscx.rcvbuf, fifo_size); | 166 | skb_put_data(skb, bcs->hw.hscx.rcvbuf, |
167 | fifo_size); | ||
166 | skb_queue_tail(&bcs->rqueue, skb); | 168 | skb_queue_tail(&bcs->rqueue, skb); |
167 | } | 169 | } |
168 | bcs->hw.hscx.rcvidx = 0; | 170 | bcs->hw.hscx.rcvidx = 0; |
diff --git a/drivers/isdn/hisax/l3_1tr6.c b/drivers/isdn/hisax/l3_1tr6.c index 875402e76d0a..da0a1c6aa329 100644 --- a/drivers/isdn/hisax/l3_1tr6.c +++ b/drivers/isdn/hisax/l3_1tr6.c | |||
@@ -149,7 +149,7 @@ l3_1tr6_setup_req(struct l3_process *pc, u_char pr, void *arg) | |||
149 | l = p - tmp; | 149 | l = p - tmp; |
150 | if (!(skb = l3_alloc_skb(l))) | 150 | if (!(skb = l3_alloc_skb(l))) |
151 | return; | 151 | return; |
152 | memcpy(skb_put(skb, l), tmp, l); | 152 | skb_put_data(skb, tmp, l); |
153 | L3DelTimer(&pc->timer); | 153 | L3DelTimer(&pc->timer); |
154 | L3AddTimer(&pc->timer, T303, CC_T303); | 154 | L3AddTimer(&pc->timer, T303, CC_T303); |
155 | newl3state(pc, 1); | 155 | newl3state(pc, 1); |
@@ -497,7 +497,7 @@ l3_1tr6_setup_rsp(struct l3_process *pc, u_char pr, void *arg) | |||
497 | l = p - tmp; | 497 | l = p - tmp; |
498 | if (!(skb = l3_alloc_skb(l))) | 498 | if (!(skb = l3_alloc_skb(l))) |
499 | return; | 499 | return; |
500 | memcpy(skb_put(skb, l), tmp, l); | 500 | skb_put_data(skb, tmp, l); |
501 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 501 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
502 | L3DelTimer(&pc->timer); | 502 | L3DelTimer(&pc->timer); |
503 | L3AddTimer(&pc->timer, T313, CC_T313); | 503 | L3AddTimer(&pc->timer, T313, CC_T313); |
@@ -543,7 +543,7 @@ l3_1tr6_disconnect_req(struct l3_process *pc, u_char pr, void *arg) | |||
543 | l = p - tmp; | 543 | l = p - tmp; |
544 | if (!(skb = l3_alloc_skb(l))) | 544 | if (!(skb = l3_alloc_skb(l))) |
545 | return; | 545 | return; |
546 | memcpy(skb_put(skb, l), tmp, l); | 546 | skb_put_data(skb, tmp, l); |
547 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 547 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
548 | L3AddTimer(&pc->timer, T305, CC_T305); | 548 | L3AddTimer(&pc->timer, T305, CC_T305); |
549 | } | 549 | } |
@@ -602,7 +602,7 @@ l3_1tr6_t305(struct l3_process *pc, u_char pr, void *arg) | |||
602 | l = p - tmp; | 602 | l = p - tmp; |
603 | if (!(skb = l3_alloc_skb(l))) | 603 | if (!(skb = l3_alloc_skb(l))) |
604 | return; | 604 | return; |
605 | memcpy(skb_put(skb, l), tmp, l); | 605 | skb_put_data(skb, tmp, l); |
606 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 606 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
607 | L3AddTimer(&pc->timer, T308, CC_T308_1); | 607 | L3AddTimer(&pc->timer, T308, CC_T308_1); |
608 | } | 608 | } |
diff --git a/drivers/isdn/hisax/l3dss1.c b/drivers/isdn/hisax/l3dss1.c index cda700664e9c..18a3484b1f7e 100644 --- a/drivers/isdn/hisax/l3dss1.c +++ b/drivers/isdn/hisax/l3dss1.c | |||
@@ -525,7 +525,7 @@ l3dss1_message_cause(struct l3_process *pc, u_char mt, u_char cause) | |||
525 | l = p - tmp; | 525 | l = p - tmp; |
526 | if (!(skb = l3_alloc_skb(l))) | 526 | if (!(skb = l3_alloc_skb(l))) |
527 | return; | 527 | return; |
528 | memcpy(skb_put(skb, l), tmp, l); | 528 | skb_put_data(skb, tmp, l); |
529 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 529 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
530 | } | 530 | } |
531 | 531 | ||
@@ -551,7 +551,7 @@ l3dss1_status_send(struct l3_process *pc, u_char pr, void *arg) | |||
551 | l = p - tmp; | 551 | l = p - tmp; |
552 | if (!(skb = l3_alloc_skb(l))) | 552 | if (!(skb = l3_alloc_skb(l))) |
553 | return; | 553 | return; |
554 | memcpy(skb_put(skb, l), tmp, l); | 554 | skb_put_data(skb, tmp, l); |
555 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 555 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
556 | } | 556 | } |
557 | 557 | ||
@@ -587,7 +587,7 @@ l3dss1_msg_without_setup(struct l3_process *pc, u_char pr, void *arg) | |||
587 | l = p - tmp; | 587 | l = p - tmp; |
588 | if (!(skb = l3_alloc_skb(l))) | 588 | if (!(skb = l3_alloc_skb(l))) |
589 | return; | 589 | return; |
590 | memcpy(skb_put(skb, l), tmp, l); | 590 | skb_put_data(skb, tmp, l); |
591 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 591 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
592 | dss1_release_l3_process(pc); | 592 | dss1_release_l3_process(pc); |
593 | } | 593 | } |
@@ -944,7 +944,7 @@ l3dss1_msg_with_uus(struct l3_process *pc, u_char cmd) | |||
944 | l = p - tmp; | 944 | l = p - tmp; |
945 | if (!(skb = l3_alloc_skb(l))) | 945 | if (!(skb = l3_alloc_skb(l))) |
946 | return; | 946 | return; |
947 | memcpy(skb_put(skb, l), tmp, l); | 947 | skb_put_data(skb, tmp, l); |
948 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 948 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
949 | } /* l3dss1_msg_with_uus */ | 949 | } /* l3dss1_msg_with_uus */ |
950 | 950 | ||
@@ -1420,7 +1420,7 @@ l3dss1_setup_req(struct l3_process *pc, u_char pr, | |||
1420 | l = p - tmp; | 1420 | l = p - tmp; |
1421 | if (!(skb = l3_alloc_skb(l))) | 1421 | if (!(skb = l3_alloc_skb(l))) |
1422 | return; | 1422 | return; |
1423 | memcpy(skb_put(skb, l), tmp, l); | 1423 | skb_put_data(skb, tmp, l); |
1424 | L3DelTimer(&pc->timer); | 1424 | L3DelTimer(&pc->timer); |
1425 | L3AddTimer(&pc->timer, T303, CC_T303); | 1425 | L3AddTimer(&pc->timer, T303, CC_T303); |
1426 | newl3state(pc, 1); | 1426 | newl3state(pc, 1); |
@@ -1786,7 +1786,7 @@ l3dss1_disconnect_req(struct l3_process *pc, u_char pr, void *arg) | |||
1786 | l = p - tmp; | 1786 | l = p - tmp; |
1787 | if (!(skb = l3_alloc_skb(l))) | 1787 | if (!(skb = l3_alloc_skb(l))) |
1788 | return; | 1788 | return; |
1789 | memcpy(skb_put(skb, l), tmp, l); | 1789 | skb_put_data(skb, tmp, l); |
1790 | newl3state(pc, 11); | 1790 | newl3state(pc, 11); |
1791 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 1791 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
1792 | L3AddTimer(&pc->timer, T305, CC_T305); | 1792 | L3AddTimer(&pc->timer, T305, CC_T305); |
@@ -1848,7 +1848,7 @@ l3dss1_reject_req(struct l3_process *pc, u_char pr, void *arg) | |||
1848 | l = p - tmp; | 1848 | l = p - tmp; |
1849 | if (!(skb = l3_alloc_skb(l))) | 1849 | if (!(skb = l3_alloc_skb(l))) |
1850 | return; | 1850 | return; |
1851 | memcpy(skb_put(skb, l), tmp, l); | 1851 | skb_put_data(skb, tmp, l); |
1852 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 1852 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
1853 | pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); | 1853 | pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); |
1854 | newl3state(pc, 0); | 1854 | newl3state(pc, 0); |
@@ -2145,7 +2145,7 @@ static void l3dss1_redir_req(struct l3_process *pc, u_char pr, void *arg) | |||
2145 | 2145 | ||
2146 | l = p - tmp; | 2146 | l = p - tmp; |
2147 | if (!(skb = l3_alloc_skb(l))) return; | 2147 | if (!(skb = l3_alloc_skb(l))) return; |
2148 | memcpy(skb_put(skb, l), tmp, l); | 2148 | skb_put_data(skb, tmp, l); |
2149 | 2149 | ||
2150 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2150 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2151 | } /* l3dss1_redir_req */ | 2151 | } /* l3dss1_redir_req */ |
@@ -2216,7 +2216,7 @@ static int l3dss1_cmd_global(struct PStack *st, isdn_ctrl *ic) | |||
2216 | if (pc) dss1_release_l3_process(pc); | 2216 | if (pc) dss1_release_l3_process(pc); |
2217 | return (-2); | 2217 | return (-2); |
2218 | } | 2218 | } |
2219 | memcpy(skb_put(skb, l), temp, l); | 2219 | skb_put_data(skb, temp, l); |
2220 | 2220 | ||
2221 | if (pc) | 2221 | if (pc) |
2222 | { pc->prot.dss1.invoke_id = id; /* remember id */ | 2222 | { pc->prot.dss1.invoke_id = id; /* remember id */ |
@@ -2359,7 +2359,7 @@ l3dss1_t305(struct l3_process *pc, u_char pr, void *arg) | |||
2359 | l = p - tmp; | 2359 | l = p - tmp; |
2360 | if (!(skb = l3_alloc_skb(l))) | 2360 | if (!(skb = l3_alloc_skb(l))) |
2361 | return; | 2361 | return; |
2362 | memcpy(skb_put(skb, l), tmp, l); | 2362 | skb_put_data(skb, tmp, l); |
2363 | newl3state(pc, 19); | 2363 | newl3state(pc, 19); |
2364 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2364 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2365 | L3AddTimer(&pc->timer, T308, CC_T308_1); | 2365 | L3AddTimer(&pc->timer, T308, CC_T308_1); |
@@ -2528,7 +2528,7 @@ l3dss1_suspend_req(struct l3_process *pc, u_char pr, void *arg) | |||
2528 | l = p - tmp; | 2528 | l = p - tmp; |
2529 | if (!(skb = l3_alloc_skb(l))) | 2529 | if (!(skb = l3_alloc_skb(l))) |
2530 | return; | 2530 | return; |
2531 | memcpy(skb_put(skb, l), tmp, l); | 2531 | skb_put_data(skb, tmp, l); |
2532 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2532 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2533 | newl3state(pc, 15); | 2533 | newl3state(pc, 15); |
2534 | L3AddTimer(&pc->timer, T319, CC_T319); | 2534 | L3AddTimer(&pc->timer, T319, CC_T319); |
@@ -2603,7 +2603,7 @@ l3dss1_resume_req(struct l3_process *pc, u_char pr, void *arg) | |||
2603 | l = p - tmp; | 2603 | l = p - tmp; |
2604 | if (!(skb = l3_alloc_skb(l))) | 2604 | if (!(skb = l3_alloc_skb(l))) |
2605 | return; | 2605 | return; |
2606 | memcpy(skb_put(skb, l), tmp, l); | 2606 | skb_put_data(skb, tmp, l); |
2607 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2607 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2608 | newl3state(pc, 17); | 2608 | newl3state(pc, 17); |
2609 | L3AddTimer(&pc->timer, T318, CC_T318); | 2609 | L3AddTimer(&pc->timer, T318, CC_T318); |
@@ -2721,7 +2721,7 @@ l3dss1_global_restart(struct l3_process *pc, u_char pr, void *arg) | |||
2721 | l = p - tmp; | 2721 | l = p - tmp; |
2722 | if (!(skb = l3_alloc_skb(l))) | 2722 | if (!(skb = l3_alloc_skb(l))) |
2723 | return; | 2723 | return; |
2724 | memcpy(skb_put(skb, l), tmp, l); | 2724 | skb_put_data(skb, tmp, l); |
2725 | newl3state(pc, 0); | 2725 | newl3state(pc, 0); |
2726 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2726 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2727 | } | 2727 | } |
@@ -2929,7 +2929,7 @@ global_handler(struct PStack *st, int mt, struct sk_buff *skb) | |||
2929 | l = p - tmp; | 2929 | l = p - tmp; |
2930 | if (!(skb = l3_alloc_skb(l))) | 2930 | if (!(skb = l3_alloc_skb(l))) |
2931 | return; | 2931 | return; |
2932 | memcpy(skb_put(skb, l), tmp, l); | 2932 | skb_put_data(skb, tmp, l); |
2933 | l3_msg(proc->st, DL_DATA | REQUEST, skb); | 2933 | l3_msg(proc->st, DL_DATA | REQUEST, skb); |
2934 | } else { | 2934 | } else { |
2935 | if (st->l3.debug & L3_DEB_STATE) { | 2935 | if (st->l3.debug & L3_DEB_STATE) { |
diff --git a/drivers/isdn/hisax/l3ni1.c b/drivers/isdn/hisax/l3ni1.c index 8dc791bfaa6f..ea311e7df48e 100644 --- a/drivers/isdn/hisax/l3ni1.c +++ b/drivers/isdn/hisax/l3ni1.c | |||
@@ -454,7 +454,7 @@ l3ni1_message_plus_chid(struct l3_process *pc, u_char mt) | |||
454 | 454 | ||
455 | if (!(skb = l3_alloc_skb(7))) | 455 | if (!(skb = l3_alloc_skb(7))) |
456 | return; | 456 | return; |
457 | memcpy(skb_put(skb, 7), tmp, 7); | 457 | skb_put_data(skb, tmp, 7); |
458 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 458 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
459 | } | 459 | } |
460 | 460 | ||
@@ -475,7 +475,7 @@ l3ni1_message_cause(struct l3_process *pc, u_char mt, u_char cause) | |||
475 | l = p - tmp; | 475 | l = p - tmp; |
476 | if (!(skb = l3_alloc_skb(l))) | 476 | if (!(skb = l3_alloc_skb(l))) |
477 | return; | 477 | return; |
478 | memcpy(skb_put(skb, l), tmp, l); | 478 | skb_put_data(skb, tmp, l); |
479 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 479 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
480 | } | 480 | } |
481 | 481 | ||
@@ -501,7 +501,7 @@ l3ni1_status_send(struct l3_process *pc, u_char pr, void *arg) | |||
501 | l = p - tmp; | 501 | l = p - tmp; |
502 | if (!(skb = l3_alloc_skb(l))) | 502 | if (!(skb = l3_alloc_skb(l))) |
503 | return; | 503 | return; |
504 | memcpy(skb_put(skb, l), tmp, l); | 504 | skb_put_data(skb, tmp, l); |
505 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 505 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
506 | } | 506 | } |
507 | 507 | ||
@@ -537,7 +537,7 @@ l3ni1_msg_without_setup(struct l3_process *pc, u_char pr, void *arg) | |||
537 | l = p - tmp; | 537 | l = p - tmp; |
538 | if (!(skb = l3_alloc_skb(l))) | 538 | if (!(skb = l3_alloc_skb(l))) |
539 | return; | 539 | return; |
540 | memcpy(skb_put(skb, l), tmp, l); | 540 | skb_put_data(skb, tmp, l); |
541 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 541 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
542 | ni1_release_l3_process(pc); | 542 | ni1_release_l3_process(pc); |
543 | } | 543 | } |
@@ -894,7 +894,7 @@ l3ni1_msg_with_uus(struct l3_process *pc, u_char cmd) | |||
894 | l = p - tmp; | 894 | l = p - tmp; |
895 | if (!(skb = l3_alloc_skb(l))) | 895 | if (!(skb = l3_alloc_skb(l))) |
896 | return; | 896 | return; |
897 | memcpy(skb_put(skb, l), tmp, l); | 897 | skb_put_data(skb, tmp, l); |
898 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 898 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
899 | } /* l3ni1_msg_with_uus */ | 899 | } /* l3ni1_msg_with_uus */ |
900 | 900 | ||
@@ -1274,7 +1274,7 @@ l3ni1_setup_req(struct l3_process *pc, u_char pr, | |||
1274 | { | 1274 | { |
1275 | return; | 1275 | return; |
1276 | } | 1276 | } |
1277 | memcpy(skb_put(skb, l), tmp, l); | 1277 | skb_put_data(skb, tmp, l); |
1278 | L3DelTimer(&pc->timer); | 1278 | L3DelTimer(&pc->timer); |
1279 | L3AddTimer(&pc->timer, T303, CC_T303); | 1279 | L3AddTimer(&pc->timer, T303, CC_T303); |
1280 | newl3state(pc, 1); | 1280 | newl3state(pc, 1); |
@@ -1640,7 +1640,7 @@ l3ni1_disconnect_req(struct l3_process *pc, u_char pr, void *arg) | |||
1640 | l = p - tmp; | 1640 | l = p - tmp; |
1641 | if (!(skb = l3_alloc_skb(l))) | 1641 | if (!(skb = l3_alloc_skb(l))) |
1642 | return; | 1642 | return; |
1643 | memcpy(skb_put(skb, l), tmp, l); | 1643 | skb_put_data(skb, tmp, l); |
1644 | newl3state(pc, 11); | 1644 | newl3state(pc, 11); |
1645 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 1645 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
1646 | L3AddTimer(&pc->timer, T305, CC_T305); | 1646 | L3AddTimer(&pc->timer, T305, CC_T305); |
@@ -1704,7 +1704,7 @@ l3ni1_reject_req(struct l3_process *pc, u_char pr, void *arg) | |||
1704 | l = p - tmp; | 1704 | l = p - tmp; |
1705 | if (!(skb = l3_alloc_skb(l))) | 1705 | if (!(skb = l3_alloc_skb(l))) |
1706 | return; | 1706 | return; |
1707 | memcpy(skb_put(skb, l), tmp, l); | 1707 | skb_put_data(skb, tmp, l); |
1708 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 1708 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
1709 | pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); | 1709 | pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); |
1710 | newl3state(pc, 0); | 1710 | newl3state(pc, 0); |
@@ -2001,7 +2001,7 @@ static void l3ni1_redir_req(struct l3_process *pc, u_char pr, void *arg) | |||
2001 | 2001 | ||
2002 | l = p - tmp; | 2002 | l = p - tmp; |
2003 | if (!(skb = l3_alloc_skb(l))) return; | 2003 | if (!(skb = l3_alloc_skb(l))) return; |
2004 | memcpy(skb_put(skb, l), tmp, l); | 2004 | skb_put_data(skb, tmp, l); |
2005 | 2005 | ||
2006 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2006 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2007 | } /* l3ni1_redir_req */ | 2007 | } /* l3ni1_redir_req */ |
@@ -2076,7 +2076,7 @@ static int l3ni1_cmd_global(struct PStack *st, isdn_ctrl *ic) | |||
2076 | if (pc) ni1_release_l3_process(pc); | 2076 | if (pc) ni1_release_l3_process(pc); |
2077 | return (-2); | 2077 | return (-2); |
2078 | } | 2078 | } |
2079 | memcpy(skb_put(skb, l), temp, l); | 2079 | skb_put_data(skb, temp, l); |
2080 | 2080 | ||
2081 | if (pc) | 2081 | if (pc) |
2082 | { pc->prot.ni1.invoke_id = id; /* remember id */ | 2082 | { pc->prot.ni1.invoke_id = id; /* remember id */ |
@@ -2219,7 +2219,7 @@ l3ni1_t305(struct l3_process *pc, u_char pr, void *arg) | |||
2219 | l = p - tmp; | 2219 | l = p - tmp; |
2220 | if (!(skb = l3_alloc_skb(l))) | 2220 | if (!(skb = l3_alloc_skb(l))) |
2221 | return; | 2221 | return; |
2222 | memcpy(skb_put(skb, l), tmp, l); | 2222 | skb_put_data(skb, tmp, l); |
2223 | newl3state(pc, 19); | 2223 | newl3state(pc, 19); |
2224 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2224 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2225 | L3AddTimer(&pc->timer, T308, CC_T308_1); | 2225 | L3AddTimer(&pc->timer, T308, CC_T308_1); |
@@ -2388,7 +2388,7 @@ l3ni1_suspend_req(struct l3_process *pc, u_char pr, void *arg) | |||
2388 | l = p - tmp; | 2388 | l = p - tmp; |
2389 | if (!(skb = l3_alloc_skb(l))) | 2389 | if (!(skb = l3_alloc_skb(l))) |
2390 | return; | 2390 | return; |
2391 | memcpy(skb_put(skb, l), tmp, l); | 2391 | skb_put_data(skb, tmp, l); |
2392 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2392 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2393 | newl3state(pc, 15); | 2393 | newl3state(pc, 15); |
2394 | L3AddTimer(&pc->timer, T319, CC_T319); | 2394 | L3AddTimer(&pc->timer, T319, CC_T319); |
@@ -2463,7 +2463,7 @@ l3ni1_resume_req(struct l3_process *pc, u_char pr, void *arg) | |||
2463 | l = p - tmp; | 2463 | l = p - tmp; |
2464 | if (!(skb = l3_alloc_skb(l))) | 2464 | if (!(skb = l3_alloc_skb(l))) |
2465 | return; | 2465 | return; |
2466 | memcpy(skb_put(skb, l), tmp, l); | 2466 | skb_put_data(skb, tmp, l); |
2467 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2467 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2468 | newl3state(pc, 17); | 2468 | newl3state(pc, 17); |
2469 | L3AddTimer(&pc->timer, T318, CC_T318); | 2469 | L3AddTimer(&pc->timer, T318, CC_T318); |
@@ -2582,7 +2582,7 @@ l3ni1_global_restart(struct l3_process *pc, u_char pr, void *arg) | |||
2582 | l = p - tmp; | 2582 | l = p - tmp; |
2583 | if (!(skb = l3_alloc_skb(l))) | 2583 | if (!(skb = l3_alloc_skb(l))) |
2584 | return; | 2584 | return; |
2585 | memcpy(skb_put(skb, l), tmp, l); | 2585 | skb_put_data(skb, tmp, l); |
2586 | newl3state(pc, 0); | 2586 | newl3state(pc, 0); |
2587 | l3_msg(pc->st, DL_DATA | REQUEST, skb); | 2587 | l3_msg(pc->st, DL_DATA | REQUEST, skb); |
2588 | } | 2588 | } |
@@ -2655,7 +2655,7 @@ static void l3ni1_SendSpid(struct l3_process *pc, u_char pr, struct sk_buff *skb | |||
2655 | *p++ = IE_SPID; | 2655 | *p++ = IE_SPID; |
2656 | *p++ = l; | 2656 | *p++ = l; |
2657 | 2657 | ||
2658 | memcpy(skb_put(skb, l), pSPID, l); | 2658 | skb_put_data(skb, pSPID, l); |
2659 | 2659 | ||
2660 | newl3state(pc, iNewState); | 2660 | newl3state(pc, iNewState); |
2661 | 2661 | ||
@@ -2873,7 +2873,7 @@ global_handler(struct PStack *st, int mt, struct sk_buff *skb) | |||
2873 | l = p - tmp; | 2873 | l = p - tmp; |
2874 | if (!(skb = l3_alloc_skb(l))) | 2874 | if (!(skb = l3_alloc_skb(l))) |
2875 | return; | 2875 | return; |
2876 | memcpy(skb_put(skb, l), tmp, l); | 2876 | skb_put_data(skb, tmp, l); |
2877 | l3_msg(proc->st, DL_DATA | REQUEST, skb); | 2877 | l3_msg(proc->st, DL_DATA | REQUEST, skb); |
2878 | } else { | 2878 | } else { |
2879 | if (st->l3.debug & L3_DEB_STATE) { | 2879 | if (st->l3.debug & L3_DEB_STATE) { |
diff --git a/drivers/isdn/hisax/netjet.c b/drivers/isdn/hisax/netjet.c index 233e432e06f6..b7f54fa29228 100644 --- a/drivers/isdn/hisax/netjet.c +++ b/drivers/isdn/hisax/netjet.c | |||
@@ -383,7 +383,7 @@ static void got_frame(struct BCState *bcs, int count) { | |||
383 | if (!(skb = dev_alloc_skb(count))) | 383 | if (!(skb = dev_alloc_skb(count))) |
384 | printk(KERN_WARNING "TIGER: receive out of memory\n"); | 384 | printk(KERN_WARNING "TIGER: receive out of memory\n"); |
385 | else { | 385 | else { |
386 | memcpy(skb_put(skb, count), bcs->hw.tiger.rcvbuf, count); | 386 | skb_put_data(skb, bcs->hw.tiger.rcvbuf, count); |
387 | skb_queue_tail(&bcs->rqueue, skb); | 387 | skb_queue_tail(&bcs->rqueue, skb); |
388 | } | 388 | } |
389 | test_and_set_bit(B_RCVBUFREADY, &bcs->event); | 389 | test_and_set_bit(B_RCVBUFREADY, &bcs->event); |
diff --git a/drivers/isdn/hisax/st5481_usb.c b/drivers/isdn/hisax/st5481_usb.c index a0fdbc074b98..1cb9930d5e24 100644 --- a/drivers/isdn/hisax/st5481_usb.c +++ b/drivers/isdn/hisax/st5481_usb.c | |||
@@ -527,7 +527,7 @@ static void usb_in_complete(struct urb *urb) | |||
527 | WARNING("receive out of memory\n"); | 527 | WARNING("receive out of memory\n"); |
528 | break; | 528 | break; |
529 | } | 529 | } |
530 | memcpy(skb_put(skb, status), in->rcvbuf, status); | 530 | skb_put_data(skb, in->rcvbuf, status); |
531 | in->hisax_if->l1l2(in->hisax_if, PH_DATA | INDICATION, skb); | 531 | in->hisax_if->l1l2(in->hisax_if, PH_DATA | INDICATION, skb); |
532 | } else if (status == -HDLC_CRC_ERROR) { | 532 | } else if (status == -HDLC_CRC_ERROR) { |
533 | INFO("CRC error"); | 533 | INFO("CRC error"); |
diff --git a/drivers/isdn/hisax/w6692.c b/drivers/isdn/hisax/w6692.c index c99f0ec58a01..6f6733b7c1e4 100644 --- a/drivers/isdn/hisax/w6692.c +++ b/drivers/isdn/hisax/w6692.c | |||
@@ -309,7 +309,9 @@ W6692B_interrupt(struct IsdnCardState *cs, u_char bchan) | |||
309 | if (!(skb = dev_alloc_skb(count))) | 309 | if (!(skb = dev_alloc_skb(count))) |
310 | printk(KERN_WARNING "W6692: Bchan receive out of memory\n"); | 310 | printk(KERN_WARNING "W6692: Bchan receive out of memory\n"); |
311 | else { | 311 | else { |
312 | memcpy(skb_put(skb, count), bcs->hw.w6692.rcvbuf, count); | 312 | skb_put_data(skb, |
313 | bcs->hw.w6692.rcvbuf, | ||
314 | count); | ||
313 | skb_queue_tail(&bcs->rqueue, skb); | 315 | skb_queue_tail(&bcs->rqueue, skb); |
314 | } | 316 | } |
315 | } | 317 | } |
@@ -332,7 +334,8 @@ W6692B_interrupt(struct IsdnCardState *cs, u_char bchan) | |||
332 | if (!(skb = dev_alloc_skb(W_B_FIFO_THRESH))) | 334 | if (!(skb = dev_alloc_skb(W_B_FIFO_THRESH))) |
333 | printk(KERN_WARNING "HiSax: receive out of memory\n"); | 335 | printk(KERN_WARNING "HiSax: receive out of memory\n"); |
334 | else { | 336 | else { |
335 | memcpy(skb_put(skb, W_B_FIFO_THRESH), bcs->hw.w6692.rcvbuf, W_B_FIFO_THRESH); | 337 | skb_put_data(skb, bcs->hw.w6692.rcvbuf, |
338 | W_B_FIFO_THRESH); | ||
336 | skb_queue_tail(&bcs->rqueue, skb); | 339 | skb_queue_tail(&bcs->rqueue, skb); |
337 | } | 340 | } |
338 | bcs->hw.w6692.rcvidx = 0; | 341 | bcs->hw.w6692.rcvidx = 0; |
@@ -441,7 +444,7 @@ StartW6692: | |||
441 | if (!(skb = alloc_skb(count, GFP_ATOMIC))) | 444 | if (!(skb = alloc_skb(count, GFP_ATOMIC))) |
442 | printk(KERN_WARNING "HiSax: D receive out of memory\n"); | 445 | printk(KERN_WARNING "HiSax: D receive out of memory\n"); |
443 | else { | 446 | else { |
444 | memcpy(skb_put(skb, count), cs->rcvbuf, count); | 447 | skb_put_data(skb, cs->rcvbuf, count); |
445 | skb_queue_tail(&cs->rq, skb); | 448 | skb_queue_tail(&cs->rq, skb); |
446 | } | 449 | } |
447 | } | 450 | } |
diff --git a/drivers/isdn/hysdn/hycapi.c b/drivers/isdn/hysdn/hycapi.c index 93bae94314a6..87119b517508 100644 --- a/drivers/isdn/hysdn/hycapi.c +++ b/drivers/isdn/hysdn/hycapi.c | |||
@@ -171,16 +171,16 @@ hycapi_register_internal(struct capi_ctr *ctrl, __u16 appl, | |||
171 | card->myid); | 171 | card->myid); |
172 | return; | 172 | return; |
173 | } | 173 | } |
174 | memcpy(skb_put(skb, sizeof(__u16)), &len, sizeof(__u16)); | 174 | skb_put_data(skb, &len, sizeof(__u16)); |
175 | memcpy(skb_put(skb, sizeof(__u16)), &appl, sizeof(__u16)); | 175 | skb_put_data(skb, &appl, sizeof(__u16)); |
176 | memcpy(skb_put(skb, sizeof(__u8)), &_command, sizeof(_command)); | 176 | memcpy(skb_put(skb, sizeof(__u8)), &_command, sizeof(_command)); |
177 | memcpy(skb_put(skb, sizeof(__u8)), &_subcommand, sizeof(_subcommand)); | 177 | memcpy(skb_put(skb, sizeof(__u8)), &_subcommand, sizeof(_subcommand)); |
178 | memcpy(skb_put(skb, sizeof(__u16)), &MessageNumber, sizeof(__u16)); | 178 | skb_put_data(skb, &MessageNumber, sizeof(__u16)); |
179 | memcpy(skb_put(skb, sizeof(__u16)), &MessageBufferSize, sizeof(__u16)); | 179 | skb_put_data(skb, &MessageBufferSize, sizeof(__u16)); |
180 | memcpy(skb_put(skb, sizeof(__u16)), &(rp->level3cnt), sizeof(__u16)); | 180 | skb_put_data(skb, &(rp->level3cnt), sizeof(__u16)); |
181 | memcpy(skb_put(skb, sizeof(__u16)), &(rp->datablkcnt), sizeof(__u16)); | 181 | skb_put_data(skb, &(rp->datablkcnt), sizeof(__u16)); |
182 | memcpy(skb_put(skb, sizeof(__u16)), &(rp->datablklen), sizeof(__u16)); | 182 | skb_put_data(skb, &(rp->datablklen), sizeof(__u16)); |
183 | memcpy(skb_put(skb, slen), ExtFeatureDefaults, slen); | 183 | skb_put_data(skb, ExtFeatureDefaults, slen); |
184 | hycapi_applications[appl - 1].ctrl_mask |= (1 << (ctrl->cnr - 1)); | 184 | hycapi_applications[appl - 1].ctrl_mask |= (1 << (ctrl->cnr - 1)); |
185 | hycapi_send_message(ctrl, skb); | 185 | hycapi_send_message(ctrl, skb); |
186 | } | 186 | } |
@@ -279,11 +279,11 @@ static void hycapi_release_internal(struct capi_ctr *ctrl, __u16 appl) | |||
279 | card->myid); | 279 | card->myid); |
280 | return; | 280 | return; |
281 | } | 281 | } |
282 | memcpy(skb_put(skb, sizeof(__u16)), &len, sizeof(__u16)); | 282 | skb_put_data(skb, &len, sizeof(__u16)); |
283 | memcpy(skb_put(skb, sizeof(__u16)), &appl, sizeof(__u16)); | 283 | skb_put_data(skb, &appl, sizeof(__u16)); |
284 | memcpy(skb_put(skb, sizeof(__u8)), &_command, sizeof(_command)); | 284 | memcpy(skb_put(skb, sizeof(__u8)), &_command, sizeof(_command)); |
285 | memcpy(skb_put(skb, sizeof(__u8)), &_subcommand, sizeof(_subcommand)); | 285 | memcpy(skb_put(skb, sizeof(__u8)), &_subcommand, sizeof(_subcommand)); |
286 | memcpy(skb_put(skb, sizeof(__u16)), &MessageNumber, sizeof(__u16)); | 286 | skb_put_data(skb, &MessageNumber, sizeof(__u16)); |
287 | hycapi_send_message(ctrl, skb); | 287 | hycapi_send_message(ctrl, skb); |
288 | hycapi_applications[appl - 1].ctrl_mask &= ~(1 << (ctrl->cnr - 1)); | 288 | hycapi_applications[appl - 1].ctrl_mask &= ~(1 << (ctrl->cnr - 1)); |
289 | } | 289 | } |
@@ -557,10 +557,9 @@ hycapi_rx_capipkt(hysdn_card *card, unsigned char *buf, unsigned short len) | |||
557 | card->myid); | 557 | card->myid); |
558 | return; | 558 | return; |
559 | } | 559 | } |
560 | memcpy(skb_put(skb, MsgLen), buf, MsgLen); | 560 | skb_put_data(skb, buf, MsgLen); |
561 | memcpy(skb_put(skb, 2 * sizeof(__u32)), CP64, 2 * sizeof(__u32)); | 561 | skb_put_data(skb, CP64, 2 * sizeof(__u32)); |
562 | memcpy(skb_put(skb, len - MsgLen), buf + MsgLen, | 562 | skb_put_data(skb, buf + MsgLen, len - MsgLen); |
563 | len - MsgLen); | ||
564 | CAPIMSG_SETLEN(skb->data, 30); | 563 | CAPIMSG_SETLEN(skb->data, 30); |
565 | } else { | 564 | } else { |
566 | if (!(skb = alloc_skb(len, GFP_ATOMIC))) { | 565 | if (!(skb = alloc_skb(len, GFP_ATOMIC))) { |
@@ -568,7 +567,7 @@ hycapi_rx_capipkt(hysdn_card *card, unsigned char *buf, unsigned short len) | |||
568 | card->myid); | 567 | card->myid); |
569 | return; | 568 | return; |
570 | } | 569 | } |
571 | memcpy(skb_put(skb, len), buf, len); | 570 | skb_put_data(skb, buf, len); |
572 | } | 571 | } |
573 | switch (CAPIMSG_CMD(skb->data)) | 572 | switch (CAPIMSG_CMD(skb->data)) |
574 | { | 573 | { |
diff --git a/drivers/isdn/hysdn/hysdn_net.c b/drivers/isdn/hysdn/hysdn_net.c index b93a4e9a8d34..8e9c34f33d86 100644 --- a/drivers/isdn/hysdn/hysdn_net.c +++ b/drivers/isdn/hysdn/hysdn_net.c | |||
@@ -201,7 +201,7 @@ hysdn_rx_netpkt(hysdn_card *card, unsigned char *buf, unsigned short len) | |||
201 | return; | 201 | return; |
202 | } | 202 | } |
203 | /* copy the data */ | 203 | /* copy the data */ |
204 | memcpy(skb_put(skb, len), buf, len); | 204 | skb_put_data(skb, buf, len); |
205 | 205 | ||
206 | /* determine the used protocol */ | 206 | /* determine the used protocol */ |
207 | skb->protocol = eth_type_trans(skb, dev); | 207 | skb->protocol = eth_type_trans(skb, dev); |
diff --git a/drivers/isdn/i4l/isdn_ppp.c b/drivers/isdn/i4l/isdn_ppp.c index 8aa158a09180..9ce23cf3d7d2 100644 --- a/drivers/isdn/i4l/isdn_ppp.c +++ b/drivers/isdn/i4l/isdn_ppp.c | |||
@@ -2258,8 +2258,7 @@ static void isdn_ppp_ccp_xmit_reset(struct ippp_struct *is, int proto, | |||
2258 | 2258 | ||
2259 | /* Now stuff remaining bytes */ | 2259 | /* Now stuff remaining bytes */ |
2260 | if (len) { | 2260 | if (len) { |
2261 | p = skb_put(skb, len); | 2261 | p = skb_put_data(skb, data, len); |
2262 | memcpy(p, data, len); | ||
2263 | } | 2262 | } |
2264 | 2263 | ||
2265 | /* skb is now ready for xmit */ | 2264 | /* skb is now ready for xmit */ |
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c index ddd8207e4e54..d30130c8d0f3 100644 --- a/drivers/isdn/i4l/isdn_tty.c +++ b/drivers/isdn/i4l/isdn_tty.c | |||
@@ -474,7 +474,7 @@ isdn_tty_senddown(modem_info *info) | |||
474 | return; | 474 | return; |
475 | } | 475 | } |
476 | skb_reserve(skb, skb_res); | 476 | skb_reserve(skb, skb_res); |
477 | memcpy(skb_put(skb, buflen), info->port.xmit_buf, buflen); | 477 | skb_put_data(skb, info->port.xmit_buf, buflen); |
478 | info->xmit_count = 0; | 478 | info->xmit_count = 0; |
479 | #ifdef CONFIG_ISDN_AUDIO | 479 | #ifdef CONFIG_ISDN_AUDIO |
480 | if (info->vonline & 2) { | 480 | if (info->vonline & 2) { |
diff --git a/drivers/isdn/i4l/isdn_v110.c b/drivers/isdn/i4l/isdn_v110.c index 52827a80c51f..8b74ce412524 100644 --- a/drivers/isdn/i4l/isdn_v110.c +++ b/drivers/isdn/i4l/isdn_v110.c | |||
@@ -421,7 +421,7 @@ isdn_v110_sync(isdn_v110_stream *v) | |||
421 | } | 421 | } |
422 | if ((skb = dev_alloc_skb(v->framelen + v->skbres))) { | 422 | if ((skb = dev_alloc_skb(v->framelen + v->skbres))) { |
423 | skb_reserve(skb, v->skbres); | 423 | skb_reserve(skb, v->skbres); |
424 | memcpy(skb_put(skb, v->framelen), v->OfflineFrame, v->framelen); | 424 | skb_put_data(skb, v->OfflineFrame, v->framelen); |
425 | } | 425 | } |
426 | return skb; | 426 | return skb; |
427 | } | 427 | } |
@@ -441,7 +441,7 @@ isdn_v110_idle(isdn_v110_stream *v) | |||
441 | } | 441 | } |
442 | if ((skb = dev_alloc_skb(v->framelen + v->skbres))) { | 442 | if ((skb = dev_alloc_skb(v->framelen + v->skbres))) { |
443 | skb_reserve(skb, v->skbres); | 443 | skb_reserve(skb, v->skbres); |
444 | memcpy(skb_put(skb, v->framelen), v->OnlineFrame, v->framelen); | 444 | skb_put_data(skb, v->OnlineFrame, v->framelen); |
445 | } | 445 | } |
446 | return skb; | 446 | return skb; |
447 | } | 447 | } |
@@ -486,7 +486,7 @@ isdn_v110_encode(isdn_v110_stream *v, struct sk_buff *skb) | |||
486 | } | 486 | } |
487 | skb_reserve(nskb, v->skbres + sizeof(int)); | 487 | skb_reserve(nskb, v->skbres + sizeof(int)); |
488 | if (skb->len == 0) { | 488 | if (skb->len == 0) { |
489 | memcpy(skb_put(nskb, v->framelen), v->OnlineFrame, v->framelen); | 489 | skb_put_data(nskb, v->OnlineFrame, v->framelen); |
490 | *((int *)skb_push(nskb, sizeof(int))) = 0; | 490 | *((int *)skb_push(nskb, sizeof(int))) = 0; |
491 | return nskb; | 491 | return nskb; |
492 | } | 492 | } |
diff --git a/drivers/isdn/isdnloop/isdnloop.c b/drivers/isdn/isdnloop/isdnloop.c index ef9c8e4f1fa2..7ac7badb8f55 100644 --- a/drivers/isdn/isdnloop/isdnloop.c +++ b/drivers/isdn/isdnloop/isdnloop.c | |||
@@ -479,7 +479,7 @@ isdnloop_fake(isdnloop_card *card, char *s, int ch) | |||
479 | } | 479 | } |
480 | if (ch >= 0) | 480 | if (ch >= 0) |
481 | sprintf(skb_put(skb, 3), "%02d;", ch); | 481 | sprintf(skb_put(skb, 3), "%02d;", ch); |
482 | memcpy(skb_put(skb, strlen(s)), s, strlen(s)); | 482 | skb_put_data(skb, s, strlen(s)); |
483 | skb_queue_tail(&card->dqueue, skb); | 483 | skb_queue_tail(&card->dqueue, skb); |
484 | return 0; | 484 | return 0; |
485 | } | 485 | } |
diff --git a/drivers/isdn/mISDN/dsp_cmx.c b/drivers/isdn/mISDN/dsp_cmx.c index 8e3aa002767b..d4b6f01a3f0e 100644 --- a/drivers/isdn/mISDN/dsp_cmx.c +++ b/drivers/isdn/mISDN/dsp_cmx.c | |||
@@ -1595,8 +1595,7 @@ send_packet: | |||
1595 | thh = mISDN_HEAD_P(txskb); | 1595 | thh = mISDN_HEAD_P(txskb); |
1596 | thh->prim = DL_DATA_REQ; | 1596 | thh->prim = DL_DATA_REQ; |
1597 | thh->id = 0; | 1597 | thh->id = 0; |
1598 | memcpy(skb_put(txskb, len), nskb->data + preload, | 1598 | skb_put_data(txskb, nskb->data + preload, len); |
1599 | len); | ||
1600 | /* queue (trigger later) */ | 1599 | /* queue (trigger later) */ |
1601 | skb_queue_tail(&dsp->sendq, txskb); | 1600 | skb_queue_tail(&dsp->sendq, txskb); |
1602 | } | 1601 | } |
diff --git a/drivers/isdn/mISDN/layer2.c b/drivers/isdn/mISDN/layer2.c index 5eb380a25903..7243a6746f8b 100644 --- a/drivers/isdn/mISDN/layer2.c +++ b/drivers/isdn/mISDN/layer2.c | |||
@@ -176,7 +176,7 @@ l2up_create(struct layer2 *l2, u_int prim, int len, void *arg) | |||
176 | hh->prim = prim; | 176 | hh->prim = prim; |
177 | hh->id = (l2->ch.nr << 16) | l2->ch.addr; | 177 | hh->id = (l2->ch.nr << 16) | l2->ch.addr; |
178 | if (len) | 178 | if (len) |
179 | memcpy(skb_put(skb, len), arg, len); | 179 | skb_put_data(skb, arg, len); |
180 | err = l2->up->send(l2->up, skb); | 180 | err = l2->up->send(l2->up, skb); |
181 | if (err) { | 181 | if (err) { |
182 | printk(KERN_WARNING "%s: dev %s err=%d\n", __func__, | 182 | printk(KERN_WARNING "%s: dev %s err=%d\n", __func__, |
@@ -235,7 +235,7 @@ l2down_create(struct layer2 *l2, u_int prim, u_int id, int len, void *arg) | |||
235 | hh->prim = prim; | 235 | hh->prim = prim; |
236 | hh->id = id; | 236 | hh->id = id; |
237 | if (len) | 237 | if (len) |
238 | memcpy(skb_put(skb, len), arg, len); | 238 | skb_put_data(skb, arg, len); |
239 | err = l2down_raw(l2, skb); | 239 | err = l2down_raw(l2, skb); |
240 | if (err) | 240 | if (err) |
241 | dev_kfree_skb(skb); | 241 | dev_kfree_skb(skb); |
@@ -640,7 +640,7 @@ send_uframe(struct layer2 *l2, struct sk_buff *skb, u_char cmd, u_char cr) | |||
640 | return; | 640 | return; |
641 | } | 641 | } |
642 | } | 642 | } |
643 | memcpy(skb_put(skb, i), tmp, i); | 643 | skb_put_data(skb, tmp, i); |
644 | enqueue_super(l2, skb); | 644 | enqueue_super(l2, skb); |
645 | } | 645 | } |
646 | 646 | ||
@@ -1125,7 +1125,7 @@ enquiry_cr(struct layer2 *l2, u_char typ, u_char cr, u_char pf) | |||
1125 | mISDNDevName4ch(&l2->ch), __func__); | 1125 | mISDNDevName4ch(&l2->ch), __func__); |
1126 | return; | 1126 | return; |
1127 | } | 1127 | } |
1128 | memcpy(skb_put(skb, i), tmp, i); | 1128 | skb_put_data(skb, tmp, i); |
1129 | enqueue_super(l2, skb); | 1129 | enqueue_super(l2, skb); |
1130 | } | 1130 | } |
1131 | 1131 | ||
diff --git a/drivers/isdn/mISDN/tei.c b/drivers/isdn/mISDN/tei.c index 592f597d8951..908127efccf8 100644 --- a/drivers/isdn/mISDN/tei.c +++ b/drivers/isdn/mISDN/tei.c | |||
@@ -312,7 +312,7 @@ teiup_create(struct manager *mgr, u_int prim, int len, void *arg) | |||
312 | hh->prim = prim; | 312 | hh->prim = prim; |
313 | hh->id = (mgr->ch.nr << 16) | mgr->ch.addr; | 313 | hh->id = (mgr->ch.nr << 16) | mgr->ch.addr; |
314 | if (len) | 314 | if (len) |
315 | memcpy(skb_put(skb, len), arg, len); | 315 | skb_put_data(skb, arg, len); |
316 | err = mgr->up->send(mgr->up, skb); | 316 | err = mgr->up->send(mgr->up, skb); |
317 | if (err) { | 317 | if (err) { |
318 | printk(KERN_WARNING "%s: err=%d\n", __func__, err); | 318 | printk(KERN_WARNING "%s: err=%d\n", __func__, err); |
diff --git a/drivers/media/dvb-core/dvb_net.c b/drivers/media/dvb-core/dvb_net.c index 9947b342633e..bbaf0a8cae8b 100644 --- a/drivers/media/dvb-core/dvb_net.c +++ b/drivers/media/dvb-core/dvb_net.c | |||
@@ -828,8 +828,7 @@ static void dvb_net_ule(struct net_device *dev, const u8 *buf, size_t buf_len) | |||
828 | 828 | ||
829 | /* Copy data into our current skb. */ | 829 | /* Copy data into our current skb. */ |
830 | h.how_much = min(h.priv->ule_sndu_remain, (int)h.ts_remain); | 830 | h.how_much = min(h.priv->ule_sndu_remain, (int)h.ts_remain); |
831 | memcpy(skb_put(h.priv->ule_skb, h.how_much), | 831 | skb_put_data(h.priv->ule_skb, h.from_where, h.how_much); |
832 | h.from_where, h.how_much); | ||
833 | h.priv->ule_sndu_remain -= h.how_much; | 832 | h.priv->ule_sndu_remain -= h.how_much; |
834 | h.ts_remain -= h.how_much; | 833 | h.ts_remain -= h.how_much; |
835 | h.from_where += h.how_much; | 834 | h.from_where += h.how_much; |
diff --git a/drivers/media/radio/wl128x/fmdrv_common.c b/drivers/media/radio/wl128x/fmdrv_common.c index 588e2d61c3b4..c67e055a12c9 100644 --- a/drivers/media/radio/wl128x/fmdrv_common.c +++ b/drivers/media/radio/wl128x/fmdrv_common.c | |||
@@ -442,7 +442,7 @@ static int fm_send_cmd(struct fmdev *fmdev, u8 fm_op, u16 type, void *payload, | |||
442 | fm_cb(skb)->fm_op = *((u8 *)payload + 2); | 442 | fm_cb(skb)->fm_op = *((u8 *)payload + 2); |
443 | } | 443 | } |
444 | if (payload != NULL) | 444 | if (payload != NULL) |
445 | memcpy(skb_put(skb, payload_len), payload, payload_len); | 445 | skb_put_data(skb, payload, payload_len); |
446 | 446 | ||
447 | fm_cb(skb)->completion = wait_completion; | 447 | fm_cb(skb)->completion = wait_completion; |
448 | skb_queue_tail(&fmdev->tx_q, skb); | 448 | skb_queue_tail(&fmdev->tx_q, skb); |
diff --git a/drivers/misc/ti-st/st_core.c b/drivers/misc/ti-st/st_core.c index 00051590e00f..eda8d407be28 100644 --- a/drivers/misc/ti-st/st_core.c +++ b/drivers/misc/ti-st/st_core.c | |||
@@ -262,7 +262,7 @@ void st_int_recv(void *disc_data, | |||
262 | while (count) { | 262 | while (count) { |
263 | if (st_gdata->rx_count) { | 263 | if (st_gdata->rx_count) { |
264 | len = min_t(unsigned int, st_gdata->rx_count, count); | 264 | len = min_t(unsigned int, st_gdata->rx_count, count); |
265 | memcpy(skb_put(st_gdata->rx_skb, len), ptr, len); | 265 | skb_put_data(st_gdata->rx_skb, ptr, len); |
266 | st_gdata->rx_count -= len; | 266 | st_gdata->rx_count -= len; |
267 | count -= len; | 267 | count -= len; |
268 | ptr += len; | 268 | ptr += len; |
diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c index bf0d7708beac..e74413f882ab 100644 --- a/drivers/misc/ti-st/st_kim.c +++ b/drivers/misc/ti-st/st_kim.c | |||
@@ -152,7 +152,7 @@ static void kim_int_recv(struct kim_data_s *kim_gdata, | |||
152 | while (count) { | 152 | while (count) { |
153 | if (kim_gdata->rx_count) { | 153 | if (kim_gdata->rx_count) { |
154 | len = min_t(unsigned int, kim_gdata->rx_count, count); | 154 | len = min_t(unsigned int, kim_gdata->rx_count, count); |
155 | memcpy(skb_put(kim_gdata->rx_skb, len), ptr, len); | 155 | skb_put_data(kim_gdata->rx_skb, ptr, len); |
156 | kim_gdata->rx_count -= len; | 156 | kim_gdata->rx_count -= len; |
157 | count -= len; | 157 | count -= len; |
158 | ptr += len; | 158 | ptr += len; |
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c index 7d7a3cec149a..b796db7dd621 100644 --- a/drivers/net/bonding/bond_alb.c +++ b/drivers/net/bonding/bond_alb.c | |||
@@ -936,8 +936,7 @@ static void alb_send_lp_vid(struct slave *slave, u8 mac_addr[], | |||
936 | if (!skb) | 936 | if (!skb) |
937 | return; | 937 | return; |
938 | 938 | ||
939 | data = skb_put(skb, size); | 939 | data = skb_put_data(skb, &pkt, size); |
940 | memcpy(data, &pkt, size); | ||
941 | 940 | ||
942 | skb_reset_mac_header(skb); | 941 | skb_reset_mac_header(skb); |
943 | skb->network_header = skb->mac_header + ETH_HLEN; | 942 | skb->network_header = skb->mac_header + ETH_HLEN; |
diff --git a/drivers/net/caif/caif_hsi.c b/drivers/net/caif/caif_hsi.c index 71a7c3b44fdd..4534326e20ac 100644 --- a/drivers/net/caif/caif_hsi.c +++ b/drivers/net/caif/caif_hsi.c | |||
@@ -454,8 +454,7 @@ static int cfhsi_rx_desc(struct cfhsi_desc *desc, struct cfhsi *cfhsi) | |||
454 | } | 454 | } |
455 | caif_assert(skb != NULL); | 455 | caif_assert(skb != NULL); |
456 | 456 | ||
457 | dst = skb_put(skb, len); | 457 | dst = skb_put_data(skb, pfrm, len); |
458 | memcpy(dst, pfrm, len); | ||
459 | 458 | ||
460 | skb->protocol = htons(ETH_P_CAIF); | 459 | skb->protocol = htons(ETH_P_CAIF); |
461 | skb_reset_mac_header(skb); | 460 | skb_reset_mac_header(skb); |
@@ -585,8 +584,7 @@ static int cfhsi_rx_pld(struct cfhsi_desc *desc, struct cfhsi *cfhsi) | |||
585 | } | 584 | } |
586 | caif_assert(skb != NULL); | 585 | caif_assert(skb != NULL); |
587 | 586 | ||
588 | dst = skb_put(skb, len); | 587 | dst = skb_put_data(skb, pcffrm, len); |
589 | memcpy(dst, pcffrm, len); | ||
590 | 588 | ||
591 | skb->protocol = htons(ETH_P_CAIF); | 589 | skb->protocol = htons(ETH_P_CAIF); |
592 | skb_reset_mac_header(skb); | 590 | skb_reset_mac_header(skb); |
diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c index 76e1d3545105..5c57be2082ba 100644 --- a/drivers/net/caif/caif_serial.c +++ b/drivers/net/caif/caif_serial.c | |||
@@ -198,8 +198,7 @@ static void ldisc_receive(struct tty_struct *tty, const u8 *data, | |||
198 | skb = netdev_alloc_skb(ser->dev, count+1); | 198 | skb = netdev_alloc_skb(ser->dev, count+1); |
199 | if (skb == NULL) | 199 | if (skb == NULL) |
200 | return; | 200 | return; |
201 | p = skb_put(skb, count); | 201 | p = skb_put_data(skb, data, count); |
202 | memcpy(p, data, count); | ||
203 | 202 | ||
204 | skb->protocol = htons(ETH_P_CAIF); | 203 | skb->protocol = htons(ETH_P_CAIF); |
205 | skb_reset_mac_header(skb); | 204 | skb_reset_mac_header(skb); |
diff --git a/drivers/net/caif/caif_spi.c b/drivers/net/caif/caif_spi.c index fc21afe852b9..24a5f5ca2037 100644 --- a/drivers/net/caif/caif_spi.c +++ b/drivers/net/caif/caif_spi.c | |||
@@ -548,8 +548,7 @@ int cfspi_rxfrm(struct cfspi *cfspi, u8 *buf, size_t len) | |||
548 | skb = netdev_alloc_skb(cfspi->ndev, pkt_len + 1); | 548 | skb = netdev_alloc_skb(cfspi->ndev, pkt_len + 1); |
549 | caif_assert(skb != NULL); | 549 | caif_assert(skb != NULL); |
550 | 550 | ||
551 | dst = skb_put(skb, pkt_len); | 551 | dst = skb_put_data(skb, src, pkt_len); |
552 | memcpy(dst, src, pkt_len); | ||
553 | src += pkt_len; | 552 | src += pkt_len; |
554 | 553 | ||
555 | skb->protocol = htons(ETH_P_CAIF); | 554 | skb->protocol = htons(ETH_P_CAIF); |
diff --git a/drivers/net/caif/caif_virtio.c b/drivers/net/caif/caif_virtio.c index 1794ea0420b7..c3d104feee13 100644 --- a/drivers/net/caif/caif_virtio.c +++ b/drivers/net/caif/caif_virtio.c | |||
@@ -242,7 +242,7 @@ static struct sk_buff *cfv_alloc_and_copy_skb(int *err, | |||
242 | 242 | ||
243 | skb_reserve(skb, cfv->rx_hr + pad_len); | 243 | skb_reserve(skb, cfv->rx_hr + pad_len); |
244 | 244 | ||
245 | memcpy(skb_put(skb, cfpkt_len), frm + cfv->rx_hr, cfpkt_len); | 245 | skb_put_data(skb, frm + cfv->rx_hr, cfpkt_len); |
246 | return skb; | 246 | return skb; |
247 | } | 247 | } |
248 | 248 | ||
diff --git a/drivers/net/can/slcan.c b/drivers/net/can/slcan.c index 6a6e896e52fa..5d067c1b987f 100644 --- a/drivers/net/can/slcan.c +++ b/drivers/net/can/slcan.c | |||
@@ -216,8 +216,7 @@ static void slc_bump(struct slcan *sl) | |||
216 | can_skb_prv(skb)->ifindex = sl->dev->ifindex; | 216 | can_skb_prv(skb)->ifindex = sl->dev->ifindex; |
217 | can_skb_prv(skb)->skbcnt = 0; | 217 | can_skb_prv(skb)->skbcnt = 0; |
218 | 218 | ||
219 | memcpy(skb_put(skb, sizeof(struct can_frame)), | 219 | skb_put_data(skb, &cf, sizeof(struct can_frame)); |
220 | &cf, sizeof(struct can_frame)); | ||
221 | 220 | ||
222 | sl->dev->stats.rx_packets++; | 221 | sl->dev->stats.rx_packets++; |
223 | sl->dev->stats.rx_bytes += cf.can_dlc; | 222 | sl->dev->stats.rx_bytes += cf.can_dlc; |
diff --git a/drivers/net/ethernet/3com/3c515.c b/drivers/net/ethernet/3com/3c515.c index e7b1fa56b290..c5987f518cb2 100644 --- a/drivers/net/ethernet/3com/3c515.c +++ b/drivers/net/ethernet/3com/3c515.c | |||
@@ -1370,9 +1370,9 @@ static int boomerang_rx(struct net_device *dev) | |||
1370 | (skb = netdev_alloc_skb(dev, pkt_len + 4)) != NULL) { | 1370 | (skb = netdev_alloc_skb(dev, pkt_len + 4)) != NULL) { |
1371 | skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */ | 1371 | skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */ |
1372 | /* 'skb_put()' points to the start of sk_buff data area. */ | 1372 | /* 'skb_put()' points to the start of sk_buff data area. */ |
1373 | memcpy(skb_put(skb, pkt_len), | 1373 | skb_put_data(skb, |
1374 | isa_bus_to_virt(vp->rx_ring[entry]. | 1374 | isa_bus_to_virt(vp->rx_ring[entry].addr), |
1375 | addr), pkt_len); | 1375 | pkt_len); |
1376 | rx_copy++; | 1376 | rx_copy++; |
1377 | } else { | 1377 | } else { |
1378 | void *temp; | 1378 | void *temp; |
diff --git a/drivers/net/ethernet/3com/3c59x.c b/drivers/net/ethernet/3com/3c59x.c index 14cff6017756..3b516ebeeddb 100644 --- a/drivers/net/ethernet/3com/3c59x.c +++ b/drivers/net/ethernet/3com/3c59x.c | |||
@@ -2628,9 +2628,8 @@ boomerang_rx(struct net_device *dev) | |||
2628 | skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */ | 2628 | skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */ |
2629 | pci_dma_sync_single_for_cpu(VORTEX_PCI(vp), dma, PKT_BUF_SZ, PCI_DMA_FROMDEVICE); | 2629 | pci_dma_sync_single_for_cpu(VORTEX_PCI(vp), dma, PKT_BUF_SZ, PCI_DMA_FROMDEVICE); |
2630 | /* 'skb_put()' points to the start of sk_buff data area. */ | 2630 | /* 'skb_put()' points to the start of sk_buff data area. */ |
2631 | memcpy(skb_put(skb, pkt_len), | 2631 | skb_put_data(skb, vp->rx_skbuff[entry]->data, |
2632 | vp->rx_skbuff[entry]->data, | 2632 | pkt_len); |
2633 | pkt_len); | ||
2634 | pci_dma_sync_single_for_device(VORTEX_PCI(vp), dma, PKT_BUF_SZ, PCI_DMA_FROMDEVICE); | 2633 | pci_dma_sync_single_for_device(VORTEX_PCI(vp), dma, PKT_BUF_SZ, PCI_DMA_FROMDEVICE); |
2635 | vp->rx_copy++; | 2634 | vp->rx_copy++; |
2636 | } else { | 2635 | } else { |
diff --git a/drivers/net/ethernet/aeroflex/greth.c b/drivers/net/ethernet/aeroflex/greth.c index d8e133ced7b8..4309be3724ad 100644 --- a/drivers/net/ethernet/aeroflex/greth.c +++ b/drivers/net/ethernet/aeroflex/greth.c | |||
@@ -807,7 +807,8 @@ static int greth_rx(struct net_device *dev, int limit) | |||
807 | if (netif_msg_pktdata(greth)) | 807 | if (netif_msg_pktdata(greth)) |
808 | greth_print_rx_packet(phys_to_virt(dma_addr), pkt_len); | 808 | greth_print_rx_packet(phys_to_virt(dma_addr), pkt_len); |
809 | 809 | ||
810 | memcpy(skb_put(skb, pkt_len), phys_to_virt(dma_addr), pkt_len); | 810 | skb_put_data(skb, phys_to_virt(dma_addr), |
811 | pkt_len); | ||
811 | 812 | ||
812 | skb->protocol = eth_type_trans(skb, dev); | 813 | skb->protocol = eth_type_trans(skb, dev); |
813 | dev->stats.rx_bytes += pkt_len; | 814 | dev->stats.rx_bytes += pkt_len; |
diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c index 87a11b9f0ea5..54eff90e2f02 100644 --- a/drivers/net/ethernet/agere/et131x.c +++ b/drivers/net/ethernet/agere/et131x.c | |||
@@ -2282,7 +2282,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter *adapter) | |||
2282 | 2282 | ||
2283 | adapter->netdev->stats.rx_bytes += rfd->len; | 2283 | adapter->netdev->stats.rx_bytes += rfd->len; |
2284 | 2284 | ||
2285 | memcpy(skb_put(skb, rfd->len), fbr->virt[buff_index], rfd->len); | 2285 | skb_put_data(skb, fbr->virt[buff_index], rfd->len); |
2286 | 2286 | ||
2287 | skb->protocol = eth_type_trans(skb, adapter->netdev); | 2287 | skb->protocol = eth_type_trans(skb, adapter->netdev); |
2288 | skb->ip_summed = CHECKSUM_NONE; | 2288 | skb->ip_summed = CHECKSUM_NONE; |
diff --git a/drivers/net/ethernet/apple/macmace.c b/drivers/net/ethernet/apple/macmace.c index 857df9c45f04..f17a160dbff2 100644 --- a/drivers/net/ethernet/apple/macmace.c +++ b/drivers/net/ethernet/apple/macmace.c | |||
@@ -663,7 +663,7 @@ static void mace_dma_rx_frame(struct net_device *dev, struct mace_frame *mf) | |||
663 | return; | 663 | return; |
664 | } | 664 | } |
665 | skb_reserve(skb, 2); | 665 | skb_reserve(skb, 2); |
666 | memcpy(skb_put(skb, frame_length), mf->data, frame_length); | 666 | skb_put_data(skb, mf->data, frame_length); |
667 | 667 | ||
668 | skb->protocol = eth_type_trans(skb, dev); | 668 | skb->protocol = eth_type_trans(skb, dev); |
669 | netif_rx(skb); | 669 | netif_rx(skb); |
diff --git a/drivers/net/ethernet/aurora/nb8800.c b/drivers/net/ethernet/aurora/nb8800.c index 5711fbbd6ae3..041cfb7952f8 100644 --- a/drivers/net/ethernet/aurora/nb8800.c +++ b/drivers/net/ethernet/aurora/nb8800.c | |||
@@ -251,7 +251,7 @@ static void nb8800_receive(struct net_device *dev, unsigned int i, | |||
251 | 251 | ||
252 | if (len <= RX_COPYBREAK) { | 252 | if (len <= RX_COPYBREAK) { |
253 | dma_sync_single_for_cpu(&dev->dev, dma, len, DMA_FROM_DEVICE); | 253 | dma_sync_single_for_cpu(&dev->dev, dma, len, DMA_FROM_DEVICE); |
254 | memcpy(skb_put(skb, len), data, len); | 254 | skb_put_data(skb, data, len); |
255 | dma_sync_single_for_device(&dev->dev, dma, len, | 255 | dma_sync_single_for_device(&dev->dev, dma, len, |
256 | DMA_FROM_DEVICE); | 256 | DMA_FROM_DEVICE); |
257 | } else { | 257 | } else { |
@@ -264,7 +264,7 @@ static void nb8800_receive(struct net_device *dev, unsigned int i, | |||
264 | } | 264 | } |
265 | 265 | ||
266 | dma_unmap_page(&dev->dev, dma, RX_BUF_SIZE, DMA_FROM_DEVICE); | 266 | dma_unmap_page(&dev->dev, dma, RX_BUF_SIZE, DMA_FROM_DEVICE); |
267 | memcpy(skb_put(skb, RX_COPYHDR), data, RX_COPYHDR); | 267 | skb_put_data(skb, data, RX_COPYHDR); |
268 | skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, | 268 | skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, |
269 | offset + RX_COPYHDR, len - RX_COPYHDR, | 269 | offset + RX_COPYHDR, len - RX_COPYHDR, |
270 | RX_BUF_SIZE); | 270 | RX_BUF_SIZE); |
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c index 91f7492623d3..4b0168bcbc8a 100644 --- a/drivers/net/ethernet/cadence/macb.c +++ b/drivers/net/ethernet/cadence/macb.c | |||
@@ -2992,7 +2992,7 @@ static void at91ether_rx(struct net_device *dev) | |||
2992 | skb = netdev_alloc_skb(dev, pktlen + 2); | 2992 | skb = netdev_alloc_skb(dev, pktlen + 2); |
2993 | if (skb) { | 2993 | if (skb) { |
2994 | skb_reserve(skb, 2); | 2994 | skb_reserve(skb, 2); |
2995 | memcpy(skb_put(skb, pktlen), p_recv, pktlen); | 2995 | skb_put_data(skb, p_recv, pktlen); |
2996 | 2996 | ||
2997 | skb->protocol = eth_type_trans(skb, dev); | 2997 | skb->protocol = eth_type_trans(skb, dev); |
2998 | dev->stats.rx_packets++; | 2998 | dev->stats.rx_packets++; |
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_network.h b/drivers/net/ethernet/cavium/liquidio/octeon_network.h index bf483932ff25..4b3507972243 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_network.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_network.h | |||
@@ -443,8 +443,8 @@ static inline void octeon_fast_packet_next(struct octeon_droq *droq, | |||
443 | int copy_len, | 443 | int copy_len, |
444 | int idx) | 444 | int idx) |
445 | { | 445 | { |
446 | memcpy(skb_put(nicbuf, copy_len), | 446 | skb_put_data(nicbuf, get_rbd(droq->recv_buf_list[idx].buffer), |
447 | get_rbd(droq->recv_buf_list[idx].buffer), copy_len); | 447 | copy_len); |
448 | } | 448 | } |
449 | 449 | ||
450 | /** | 450 | /** |
diff --git a/drivers/net/ethernet/cirrus/cs89x0.c b/drivers/net/ethernet/cirrus/cs89x0.c index da5b58b853e2..410a0a95130b 100644 --- a/drivers/net/ethernet/cirrus/cs89x0.c +++ b/drivers/net/ethernet/cirrus/cs89x0.c | |||
@@ -450,11 +450,10 @@ skip_this_frame: | |||
450 | 450 | ||
451 | if (bp + length > lp->end_dma_buff) { | 451 | if (bp + length > lp->end_dma_buff) { |
452 | int semi_cnt = lp->end_dma_buff - bp; | 452 | int semi_cnt = lp->end_dma_buff - bp; |
453 | memcpy(skb_put(skb, semi_cnt), bp, semi_cnt); | 453 | skb_put_data(skb, bp, semi_cnt); |
454 | memcpy(skb_put(skb, length - semi_cnt), lp->dma_buff, | 454 | skb_put_data(skb, lp->dma_buff, length - semi_cnt); |
455 | length - semi_cnt); | ||
456 | } else { | 455 | } else { |
457 | memcpy(skb_put(skb, length), bp, length); | 456 | skb_put_data(skb, bp, length); |
458 | } | 457 | } |
459 | bp += (length + 3) & ~3; | 458 | bp += (length + 3) & ~3; |
460 | if (bp >= lp->end_dma_buff) | 459 | if (bp >= lp->end_dma_buff) |
diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c index fd6bcf024729..47be5018d35d 100644 --- a/drivers/net/ethernet/dec/tulip/de4x5.c +++ b/drivers/net/ethernet/dec/tulip/de4x5.c | |||
@@ -3624,10 +3624,10 @@ de4x5_alloc_rx_buff(struct net_device *dev, int index, int len) | |||
3624 | skb_reserve(p, 2); /* Align */ | 3624 | skb_reserve(p, 2); /* Align */ |
3625 | if (index < lp->rx_old) { /* Wrapped buffer */ | 3625 | if (index < lp->rx_old) { /* Wrapped buffer */ |
3626 | short tlen = (lp->rxRingSize - lp->rx_old) * RX_BUFF_SZ; | 3626 | short tlen = (lp->rxRingSize - lp->rx_old) * RX_BUFF_SZ; |
3627 | memcpy(skb_put(p,tlen),lp->rx_bufs + lp->rx_old * RX_BUFF_SZ,tlen); | 3627 | skb_put_data(p, lp->rx_bufs + lp->rx_old * RX_BUFF_SZ, tlen); |
3628 | memcpy(skb_put(p,len-tlen),lp->rx_bufs,len-tlen); | 3628 | skb_put_data(p, lp->rx_bufs, len - tlen); |
3629 | } else { /* Linear buffer */ | 3629 | } else { /* Linear buffer */ |
3630 | memcpy(skb_put(p,len),lp->rx_bufs + lp->rx_old * RX_BUFF_SZ,len); | 3630 | skb_put_data(p, lp->rx_bufs + lp->rx_old * RX_BUFF_SZ, len); |
3631 | } | 3631 | } |
3632 | 3632 | ||
3633 | return p; | 3633 | return p; |
diff --git a/drivers/net/ethernet/dec/tulip/interrupt.c b/drivers/net/ethernet/dec/tulip/interrupt.c index ba6ae24acf62..8df80880ecaa 100644 --- a/drivers/net/ethernet/dec/tulip/interrupt.c +++ b/drivers/net/ethernet/dec/tulip/interrupt.c | |||
@@ -218,9 +218,9 @@ int tulip_poll(struct napi_struct *napi, int budget) | |||
218 | pkt_len); | 218 | pkt_len); |
219 | skb_put(skb, pkt_len); | 219 | skb_put(skb, pkt_len); |
220 | #else | 220 | #else |
221 | memcpy(skb_put(skb, pkt_len), | 221 | skb_put_data(skb, |
222 | tp->rx_buffers[entry].skb->data, | 222 | tp->rx_buffers[entry].skb->data, |
223 | pkt_len); | 223 | pkt_len); |
224 | #endif | 224 | #endif |
225 | pci_dma_sync_single_for_device(tp->pdev, | 225 | pci_dma_sync_single_for_device(tp->pdev, |
226 | tp->rx_buffers[entry].mapping, | 226 | tp->rx_buffers[entry].mapping, |
@@ -444,9 +444,9 @@ static int tulip_rx(struct net_device *dev) | |||
444 | pkt_len); | 444 | pkt_len); |
445 | skb_put(skb, pkt_len); | 445 | skb_put(skb, pkt_len); |
446 | #else | 446 | #else |
447 | memcpy(skb_put(skb, pkt_len), | 447 | skb_put_data(skb, |
448 | tp->rx_buffers[entry].skb->data, | 448 | tp->rx_buffers[entry].skb->data, |
449 | pkt_len); | 449 | pkt_len); |
450 | #endif | 450 | #endif |
451 | pci_dma_sync_single_for_device(tp->pdev, | 451 | pci_dma_sync_single_for_device(tp->pdev, |
452 | tp->rx_buffers[entry].mapping, | 452 | tp->rx_buffers[entry].mapping, |
diff --git a/drivers/net/ethernet/dec/tulip/uli526x.c b/drivers/net/ethernet/dec/tulip/uli526x.c index 8d98b259d1ba..7fc248efc4ba 100644 --- a/drivers/net/ethernet/dec/tulip/uli526x.c +++ b/drivers/net/ethernet/dec/tulip/uli526x.c | |||
@@ -864,9 +864,9 @@ static void uli526x_rx_packet(struct net_device *dev, struct uli526x_board_info | |||
864 | skb = new_skb; | 864 | skb = new_skb; |
865 | /* size less than COPY_SIZE, allocate a rxlen SKB */ | 865 | /* size less than COPY_SIZE, allocate a rxlen SKB */ |
866 | skb_reserve(skb, 2); /* 16byte align */ | 866 | skb_reserve(skb, 2); /* 16byte align */ |
867 | memcpy(skb_put(skb, rxlen), | 867 | skb_put_data(skb, |
868 | skb_tail_pointer(rxptr->rx_skb_ptr), | 868 | skb_tail_pointer(rxptr->rx_skb_ptr), |
869 | rxlen); | 869 | rxlen); |
870 | uli526x_reuse_skb(db, rxptr->rx_skb_ptr); | 870 | uli526x_reuse_skb(db, rxptr->rx_skb_ptr); |
871 | } else | 871 | } else |
872 | skb_put(skb, rxlen); | 872 | skb_put(skb, rxlen); |
diff --git a/drivers/net/ethernet/ec_bhf.c b/drivers/net/ethernet/ec_bhf.c index 278f139f2a22..4ee042c034a1 100644 --- a/drivers/net/ethernet/ec_bhf.c +++ b/drivers/net/ethernet/ec_bhf.c | |||
@@ -223,7 +223,7 @@ static void ec_bhf_process_rx(struct ec_bhf_priv *priv) | |||
223 | 223 | ||
224 | skb = netdev_alloc_skb_ip_align(priv->net_dev, pkt_size); | 224 | skb = netdev_alloc_skb_ip_align(priv->net_dev, pkt_size); |
225 | if (skb) { | 225 | if (skb) { |
226 | memcpy(skb_put(skb, pkt_size), data, pkt_size); | 226 | skb_put_data(skb, data, pkt_size); |
227 | skb->protocol = eth_type_trans(skb, priv->net_dev); | 227 | skb->protocol = eth_type_trans(skb, priv->net_dev); |
228 | priv->stat_rx_bytes += pkt_size; | 228 | priv->stat_rx_bytes += pkt_size; |
229 | 229 | ||
diff --git a/drivers/net/ethernet/fealnx.c b/drivers/net/ethernet/fealnx.c index 610f9c07c21d..e92859dab7ae 100644 --- a/drivers/net/ethernet/fealnx.c +++ b/drivers/net/ethernet/fealnx.c | |||
@@ -1711,8 +1711,8 @@ static int netdev_rx(struct net_device *dev) | |||
1711 | np->cur_rx->skbuff->data, pkt_len); | 1711 | np->cur_rx->skbuff->data, pkt_len); |
1712 | skb_put(skb, pkt_len); | 1712 | skb_put(skb, pkt_len); |
1713 | #else | 1713 | #else |
1714 | memcpy(skb_put(skb, pkt_len), | 1714 | skb_put_data(skb, np->cur_rx->skbuff->data, |
1715 | np->cur_rx->skbuff->data, pkt_len); | 1715 | pkt_len); |
1716 | #endif | 1716 | #endif |
1717 | pci_dma_sync_single_for_device(np->pci_dev, | 1717 | pci_dma_sync_single_for_device(np->pci_dev, |
1718 | np->cur_rx->buffer, | 1718 | np->cur_rx->buffer, |
diff --git a/drivers/net/ethernet/i825xx/82596.c b/drivers/net/ethernet/i825xx/82596.c index 945883842533..d719668a6684 100644 --- a/drivers/net/ethernet/i825xx/82596.c +++ b/drivers/net/ethernet/i825xx/82596.c | |||
@@ -809,7 +809,8 @@ memory_squeeze: | |||
809 | if (!rx_in_place) { | 809 | if (!rx_in_place) { |
810 | /* 16 byte align the data fields */ | 810 | /* 16 byte align the data fields */ |
811 | skb_reserve(skb, 2); | 811 | skb_reserve(skb, 2); |
812 | memcpy(skb_put(skb,pkt_len), rbd->v_data, pkt_len); | 812 | skb_put_data(skb, rbd->v_data, |
813 | pkt_len); | ||
813 | } | 814 | } |
814 | skb->protocol=eth_type_trans(skb,dev); | 815 | skb->protocol=eth_type_trans(skb,dev); |
815 | skb->len = pkt_len; | 816 | skb->len = pkt_len; |
diff --git a/drivers/net/ethernet/i825xx/lib82596.c b/drivers/net/ethernet/i825xx/lib82596.c index e86773325cbe..8449c58f01fd 100644 --- a/drivers/net/ethernet/i825xx/lib82596.c +++ b/drivers/net/ethernet/i825xx/lib82596.c | |||
@@ -727,7 +727,8 @@ memory_squeeze: | |||
727 | dma_sync_single_for_cpu(dev->dev.parent, | 727 | dma_sync_single_for_cpu(dev->dev.parent, |
728 | (dma_addr_t)SWAP32(rbd->b_data), | 728 | (dma_addr_t)SWAP32(rbd->b_data), |
729 | PKT_BUF_SZ, DMA_FROM_DEVICE); | 729 | PKT_BUF_SZ, DMA_FROM_DEVICE); |
730 | memcpy(skb_put(skb, pkt_len), rbd->v_data, pkt_len); | 730 | skb_put_data(skb, rbd->v_data, |
731 | pkt_len); | ||
731 | dma_sync_single_for_device(dev->dev.parent, | 732 | dma_sync_single_for_device(dev->dev.parent, |
732 | (dma_addr_t)SWAP32(rbd->b_data), | 733 | (dma_addr_t)SWAP32(rbd->b_data), |
733 | PKT_BUF_SZ, DMA_FROM_DEVICE); | 734 | PKT_BUF_SZ, DMA_FROM_DEVICE); |
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index bd8b05fe8258..98375e1e1185 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c | |||
@@ -4345,7 +4345,7 @@ static struct sk_buff *e1000_copybreak(struct e1000_adapter *adapter, | |||
4345 | dma_sync_single_for_cpu(&adapter->pdev->dev, buffer_info->dma, | 4345 | dma_sync_single_for_cpu(&adapter->pdev->dev, buffer_info->dma, |
4346 | length, DMA_FROM_DEVICE); | 4346 | length, DMA_FROM_DEVICE); |
4347 | 4347 | ||
4348 | memcpy(skb_put(skb, length), data, length); | 4348 | skb_put_data(skb, data, length); |
4349 | 4349 | ||
4350 | return skb; | 4350 | return skb; |
4351 | } | 4351 | } |
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index d297011b535d..0aab74c2a209 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c | |||
@@ -1976,9 +1976,8 @@ err_drop_frame: | |||
1976 | MVNETA_MH_SIZE + NET_SKB_PAD, | 1976 | MVNETA_MH_SIZE + NET_SKB_PAD, |
1977 | rx_bytes, | 1977 | rx_bytes, |
1978 | DMA_FROM_DEVICE); | 1978 | DMA_FROM_DEVICE); |
1979 | memcpy(skb_put(skb, rx_bytes), | 1979 | skb_put_data(skb, data + MVNETA_MH_SIZE + NET_SKB_PAD, |
1980 | data + MVNETA_MH_SIZE + NET_SKB_PAD, | 1980 | rx_bytes); |
1981 | rx_bytes); | ||
1982 | 1981 | ||
1983 | skb->protocol = eth_type_trans(skb, dev); | 1982 | skb->protocol = eth_type_trans(skb, dev); |
1984 | mvneta_rx_csum(pp, rx_status, skb); | 1983 | mvneta_rx_csum(pp, rx_status, skb); |
@@ -2103,9 +2102,8 @@ err_drop_frame: | |||
2103 | MVNETA_MH_SIZE + NET_SKB_PAD, | 2102 | MVNETA_MH_SIZE + NET_SKB_PAD, |
2104 | rx_bytes, | 2103 | rx_bytes, |
2105 | DMA_FROM_DEVICE); | 2104 | DMA_FROM_DEVICE); |
2106 | memcpy(skb_put(skb, rx_bytes), | 2105 | skb_put_data(skb, data + MVNETA_MH_SIZE + NET_SKB_PAD, |
2107 | data + MVNETA_MH_SIZE + NET_SKB_PAD, | 2106 | rx_bytes); |
2108 | rx_bytes); | ||
2109 | 2107 | ||
2110 | skb->protocol = eth_type_trans(skb, dev); | 2108 | skb->protocol = eth_type_trans(skb, dev); |
2111 | mvneta_rx_csum(pp, rx_status, skb); | 2109 | mvneta_rx_csum(pp, rx_status, skb); |
diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c index ee1c78abab0b..e798fbe08600 100644 --- a/drivers/net/ethernet/micrel/ksz884x.c +++ b/drivers/net/ethernet/micrel/ksz884x.c | |||
@@ -5020,8 +5020,7 @@ static inline int rx_proc(struct net_device *dev, struct ksz_hw* hw, | |||
5020 | */ | 5020 | */ |
5021 | skb_reserve(skb, 2); | 5021 | skb_reserve(skb, 2); |
5022 | 5022 | ||
5023 | memcpy(skb_put(skb, packet_len), | 5023 | skb_put_data(skb, dma_buf->skb->data, packet_len); |
5024 | dma_buf->skb->data, packet_len); | ||
5025 | } while (0); | 5024 | } while (0); |
5026 | 5025 | ||
5027 | skb->protocol = eth_type_trans(skb, dev); | 5026 | skb->protocol = eth_type_trans(skb, dev); |
diff --git a/drivers/net/ethernet/nxp/lpc_eth.c b/drivers/net/ethernet/nxp/lpc_eth.c index 9c7ffd649e9a..828bfd93cb54 100644 --- a/drivers/net/ethernet/nxp/lpc_eth.c +++ b/drivers/net/ethernet/nxp/lpc_eth.c | |||
@@ -959,11 +959,10 @@ static int __lpc_handle_recv(struct net_device *ndev, int budget) | |||
959 | if (!skb) { | 959 | if (!skb) { |
960 | ndev->stats.rx_dropped++; | 960 | ndev->stats.rx_dropped++; |
961 | } else { | 961 | } else { |
962 | prdbuf = skb_put(skb, len); | ||
963 | |||
964 | /* Copy packet from buffer */ | 962 | /* Copy packet from buffer */ |
965 | memcpy(prdbuf, pldat->rx_buff_v + | 963 | prdbuf = skb_put_data(skb, |
966 | rxconsidx * ENET_MAXF_SIZE, len); | 964 | pldat->rx_buff_v + rxconsidx * ENET_MAXF_SIZE, |
965 | len); | ||
967 | 966 | ||
968 | /* Pass to upper layer */ | 967 | /* Pass to upper layer */ |
969 | skb->protocol = eth_type_trans(skb, ndev); | 968 | skb->protocol = eth_type_trans(skb, ndev); |
diff --git a/drivers/net/ethernet/qlogic/qede/qede_fp.c b/drivers/net/ethernet/qlogic/qede/qede_fp.c index 892eb98290f6..6fc854b120b0 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_fp.c +++ b/drivers/net/ethernet/qlogic/qede/qede_fp.c | |||
@@ -1079,8 +1079,7 @@ static struct sk_buff *qede_rx_allocate_skb(struct qede_dev *edev, | |||
1079 | * re-use the already allcoated & mapped memory. | 1079 | * re-use the already allcoated & mapped memory. |
1080 | */ | 1080 | */ |
1081 | if (len + pad <= edev->rx_copybreak) { | 1081 | if (len + pad <= edev->rx_copybreak) { |
1082 | memcpy(skb_put(skb, len), | 1082 | skb_put_data(skb, page_address(page) + offset, len); |
1083 | page_address(page) + offset, len); | ||
1084 | qede_reuse_page(rxq, bd); | 1083 | qede_reuse_page(rxq, bd); |
1085 | goto out; | 1084 | goto out; |
1086 | } | 1085 | } |
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c index 1188d420fe53..9feec7009443 100644 --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c | |||
@@ -1577,7 +1577,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev, | |||
1577 | rx_ring->rx_dropped++; | 1577 | rx_ring->rx_dropped++; |
1578 | goto err_out; | 1578 | goto err_out; |
1579 | } | 1579 | } |
1580 | memcpy(skb_put(skb, hlen), addr, hlen); | 1580 | skb_put_data(skb, addr, hlen); |
1581 | netif_printk(qdev, rx_status, KERN_DEBUG, qdev->ndev, | 1581 | netif_printk(qdev, rx_status, KERN_DEBUG, qdev->ndev, |
1582 | "%d bytes of headers and data in large. Chain page to new skb and pull tail.\n", | 1582 | "%d bytes of headers and data in large. Chain page to new skb and pull tail.\n", |
1583 | length); | 1583 | length); |
@@ -1654,7 +1654,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev, | |||
1654 | dma_unmap_len(sbq_desc, maplen), | 1654 | dma_unmap_len(sbq_desc, maplen), |
1655 | PCI_DMA_FROMDEVICE); | 1655 | PCI_DMA_FROMDEVICE); |
1656 | 1656 | ||
1657 | memcpy(skb_put(new_skb, length), skb->data, length); | 1657 | skb_put_data(new_skb, skb->data, length); |
1658 | 1658 | ||
1659 | pci_dma_sync_single_for_device(qdev->pdev, | 1659 | pci_dma_sync_single_for_device(qdev->pdev, |
1660 | dma_unmap_addr(sbq_desc, mapaddr), | 1660 | dma_unmap_addr(sbq_desc, mapaddr), |
@@ -1817,8 +1817,7 @@ static struct sk_buff *ql_build_rx_skb(struct ql_adapter *qdev, | |||
1817 | dma_unmap_len | 1817 | dma_unmap_len |
1818 | (sbq_desc, maplen), | 1818 | (sbq_desc, maplen), |
1819 | PCI_DMA_FROMDEVICE); | 1819 | PCI_DMA_FROMDEVICE); |
1820 | memcpy(skb_put(skb, length), | 1820 | skb_put_data(skb, sbq_desc->p.skb->data, length); |
1821 | sbq_desc->p.skb->data, length); | ||
1822 | pci_dma_sync_single_for_device(qdev->pdev, | 1821 | pci_dma_sync_single_for_device(qdev->pdev, |
1823 | dma_unmap_addr | 1822 | dma_unmap_addr |
1824 | (sbq_desc, | 1823 | (sbq_desc, |
diff --git a/drivers/net/ethernet/silan/sc92031.c b/drivers/net/ethernet/silan/sc92031.c index 751c81848f35..c07fd594fe71 100644 --- a/drivers/net/ethernet/silan/sc92031.c +++ b/drivers/net/ethernet/silan/sc92031.c | |||
@@ -795,12 +795,12 @@ static void _sc92031_rx_tasklet(struct net_device *dev) | |||
795 | } | 795 | } |
796 | 796 | ||
797 | if ((rx_ring_offset + pkt_size) > RX_BUF_LEN) { | 797 | if ((rx_ring_offset + pkt_size) > RX_BUF_LEN) { |
798 | memcpy(skb_put(skb, RX_BUF_LEN - rx_ring_offset), | 798 | skb_put_data(skb, rx_ring + rx_ring_offset, |
799 | rx_ring + rx_ring_offset, RX_BUF_LEN - rx_ring_offset); | 799 | RX_BUF_LEN - rx_ring_offset); |
800 | memcpy(skb_put(skb, pkt_size - (RX_BUF_LEN - rx_ring_offset)), | 800 | skb_put_data(skb, rx_ring, |
801 | rx_ring, pkt_size - (RX_BUF_LEN - rx_ring_offset)); | 801 | pkt_size - (RX_BUF_LEN - rx_ring_offset)); |
802 | } else { | 802 | } else { |
803 | memcpy(skb_put(skb, pkt_size), rx_ring + rx_ring_offset, pkt_size); | 803 | skb_put_data(skb, rx_ring + rx_ring_offset, pkt_size); |
804 | } | 804 | } |
805 | 805 | ||
806 | skb->protocol = eth_type_trans(skb, dev); | 806 | skb->protocol = eth_type_trans(skb, dev); |
diff --git a/drivers/net/fjes/fjes_main.c b/drivers/net/fjes/fjes_main.c index b56e07fa44a8..750954be5a74 100644 --- a/drivers/net/fjes/fjes_main.c +++ b/drivers/net/fjes/fjes_main.c | |||
@@ -1156,8 +1156,7 @@ static int fjes_poll(struct napi_struct *napi, int budget) | |||
1156 | hw->ep_shm_info[cur_epid].net_stats | 1156 | hw->ep_shm_info[cur_epid].net_stats |
1157 | .rx_errors += 1; | 1157 | .rx_errors += 1; |
1158 | } else { | 1158 | } else { |
1159 | memcpy(skb_put(skb, frame_len), | 1159 | skb_put_data(skb, frame, frame_len); |
1160 | frame, frame_len); | ||
1161 | skb->protocol = eth_type_trans(skb, netdev); | 1160 | skb->protocol = eth_type_trans(skb, netdev); |
1162 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 1161 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
1163 | 1162 | ||
diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c index 4a40a3d825b4..aec6c26563cf 100644 --- a/drivers/net/hamradio/mkiss.c +++ b/drivers/net/hamradio/mkiss.c | |||
@@ -298,7 +298,7 @@ static void ax_bump(struct mkiss *ax) | |||
298 | return; | 298 | return; |
299 | } | 299 | } |
300 | 300 | ||
301 | memcpy(skb_put(skb,count), ax->rbuff, count); | 301 | skb_put_data(skb, ax->rbuff, count); |
302 | skb->protocol = ax25_type_trans(skb, ax->dev); | 302 | skb->protocol = ax25_type_trans(skb, ax->dev); |
303 | netif_rx(skb); | 303 | netif_rx(skb); |
304 | ax->dev->stats.rx_packets++; | 304 | ax->dev->stats.rx_packets++; |
diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c index 1ce6239a4849..7683fd544344 100644 --- a/drivers/net/hippi/rrunner.c +++ b/drivers/net/hippi/rrunner.c | |||
@@ -962,8 +962,8 @@ static void rx_int(struct net_device *dev, u32 rxlimit, u32 index) | |||
962 | pkt_len, | 962 | pkt_len, |
963 | PCI_DMA_FROMDEVICE); | 963 | PCI_DMA_FROMDEVICE); |
964 | 964 | ||
965 | memcpy(skb_put(skb, pkt_len), | 965 | skb_put_data(skb, rx_skb->data, |
966 | rx_skb->data, pkt_len); | 966 | pkt_len); |
967 | 967 | ||
968 | pci_dma_sync_single_for_device(rrpriv->pci_dev, | 968 | pci_dma_sync_single_for_device(rrpriv->pci_dev, |
969 | desc->addr.addrlo, | 969 | desc->addr.addrlo, |
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index b65a97ecb78e..9a6c5864bc04 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c | |||
@@ -593,7 +593,7 @@ static struct sk_buff *netvsc_alloc_recv_skb(struct net_device *net, | |||
593 | * Copy to skb. This copy is needed here since the memory pointed by | 593 | * Copy to skb. This copy is needed here since the memory pointed by |
594 | * hv_netvsc_packet cannot be deallocated | 594 | * hv_netvsc_packet cannot be deallocated |
595 | */ | 595 | */ |
596 | memcpy(skb_put(skb, buflen), data, buflen); | 596 | skb_put_data(skb, data, buflen); |
597 | 597 | ||
598 | skb->protocol = eth_type_trans(skb, net); | 598 | skb->protocol = eth_type_trans(skb, net); |
599 | 599 | ||
diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 76ba7ecfe142..548d9d026a85 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c | |||
@@ -723,7 +723,7 @@ at86rf230_rx_read_frame_complete(void *context) | |||
723 | return; | 723 | return; |
724 | } | 724 | } |
725 | 725 | ||
726 | memcpy(skb_put(skb, len), buf + 2, len); | 726 | skb_put_data(skb, buf + 2, len); |
727 | ieee802154_rx_irqsafe(lp->hw, skb, lqi); | 727 | ieee802154_rx_irqsafe(lp->hw, skb, lqi); |
728 | kfree(ctx); | 728 | kfree(ctx); |
729 | } | 729 | } |
diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c index 7a218549c80a..a626c539fb17 100644 --- a/drivers/net/ieee802154/ca8210.c +++ b/drivers/net/ieee802154/ca8210.c | |||
@@ -1875,7 +1875,7 @@ static int ca8210_skb_rx( | |||
1875 | copy_payload: | 1875 | copy_payload: |
1876 | /* Add <msdulen> bytes of space to the back of the buffer */ | 1876 | /* Add <msdulen> bytes of space to the back of the buffer */ |
1877 | /* Copy msdu to skb */ | 1877 | /* Copy msdu to skb */ |
1878 | memcpy(skb_put(skb, msdulen), &data_ind[29], msdulen); | 1878 | skb_put_data(skb, &data_ind[29], msdulen); |
1879 | 1879 | ||
1880 | ieee802154_rx_irqsafe(hw, skb, mpdulinkquality); | 1880 | ieee802154_rx_irqsafe(hw, skb, mpdulinkquality); |
1881 | return 0; | 1881 | return 0; |
diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c index bd63289c55e8..7d334963dc08 100644 --- a/drivers/net/ieee802154/mrf24j40.c +++ b/drivers/net/ieee802154/mrf24j40.c | |||
@@ -774,7 +774,7 @@ static void mrf24j40_handle_rx_read_buf_complete(void *context) | |||
774 | return; | 774 | return; |
775 | } | 775 | } |
776 | 776 | ||
777 | memcpy(skb_put(skb, len), rx_local_buf, len); | 777 | skb_put_data(skb, rx_local_buf, len); |
778 | ieee802154_rx_irqsafe(devrec->hw, skb, 0); | 778 | ieee802154_rx_irqsafe(devrec->hw, skb, 0); |
779 | 779 | ||
780 | #ifdef DEBUG | 780 | #ifdef DEBUG |
diff --git a/drivers/net/irda/smsc-ircc2.c b/drivers/net/irda/smsc-ircc2.c index 23ed89ae5ddc..19a55cba6beb 100644 --- a/drivers/net/irda/smsc-ircc2.c +++ b/drivers/net/irda/smsc-ircc2.c | |||
@@ -1459,7 +1459,7 @@ static void smsc_ircc_dma_receive_complete(struct smsc_ircc_cb *self) | |||
1459 | /* Make sure IP header gets aligned */ | 1459 | /* Make sure IP header gets aligned */ |
1460 | skb_reserve(skb, 1); | 1460 | skb_reserve(skb, 1); |
1461 | 1461 | ||
1462 | memcpy(skb_put(skb, len), self->rx_buff.data, len); | 1462 | skb_put_data(skb, self->rx_buff.data, len); |
1463 | self->netdev->stats.rx_packets++; | 1463 | self->netdev->stats.rx_packets++; |
1464 | self->netdev->stats.rx_bytes += len; | 1464 | self->netdev->stats.rx_bytes += len; |
1465 | 1465 | ||
diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c index 15b920086251..6638784c082e 100644 --- a/drivers/net/irda/vlsi_ir.c +++ b/drivers/net/irda/vlsi_ir.c | |||
@@ -578,7 +578,7 @@ static int vlsi_process_rx(struct vlsi_ring *r, struct ring_descr *rd) | |||
578 | skb = rd->skb; | 578 | skb = rd->skb; |
579 | rd->skb = NULL; | 579 | rd->skb = NULL; |
580 | skb->dev = ndev; | 580 | skb->dev = ndev; |
581 | memcpy(skb_put(skb,len), rd->buf, len); | 581 | skb_put_data(skb, rd->buf, len); |
582 | skb_reset_mac_header(skb); | 582 | skb_reset_mac_header(skb); |
583 | if (in_interrupt()) | 583 | if (in_interrupt()) |
584 | netif_rx(skb); | 584 | netif_rx(skb); |
diff --git a/drivers/net/ppp/ppp_async.c b/drivers/net/ppp/ppp_async.c index feb9569e3345..32c72db654e2 100644 --- a/drivers/net/ppp/ppp_async.c +++ b/drivers/net/ppp/ppp_async.c | |||
@@ -894,8 +894,7 @@ ppp_async_input(struct asyncppp *ap, const unsigned char *buf, | |||
894 | /* packet overflowed MRU */ | 894 | /* packet overflowed MRU */ |
895 | ap->state |= SC_TOSS; | 895 | ap->state |= SC_TOSS; |
896 | } else { | 896 | } else { |
897 | sp = skb_put(skb, n); | 897 | sp = skb_put_data(skb, buf, n); |
898 | memcpy(sp, buf, n); | ||
899 | if (ap->state & SC_ESCAPE) { | 898 | if (ap->state & SC_ESCAPE) { |
900 | sp[0] ^= PPP_TRANS; | 899 | sp[0] ^= PPP_TRANS; |
901 | ap->state &= ~SC_ESCAPE; | 900 | ap->state &= ~SC_ESCAPE; |
diff --git a/drivers/net/ppp/ppp_synctty.c b/drivers/net/ppp/ppp_synctty.c index 9ae53986cb4a..ce2300c0bcbf 100644 --- a/drivers/net/ppp/ppp_synctty.c +++ b/drivers/net/ppp/ppp_synctty.c | |||
@@ -697,8 +697,7 @@ ppp_sync_input(struct syncppp *ap, const unsigned char *buf, | |||
697 | goto err; | 697 | goto err; |
698 | } | 698 | } |
699 | 699 | ||
700 | p = skb_put(skb, count); | 700 | p = skb_put_data(skb, buf, count); |
701 | memcpy(p, buf, count); | ||
702 | 701 | ||
703 | /* strip address/control field if present */ | 702 | /* strip address/control field if present */ |
704 | p = skb->data; | 703 | p = skb->data; |
diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c index 74b907206aa7..436dd78c396a 100644 --- a/drivers/net/slip/slip.c +++ b/drivers/net/slip/slip.c | |||
@@ -364,7 +364,7 @@ static void sl_bump(struct slip *sl) | |||
364 | return; | 364 | return; |
365 | } | 365 | } |
366 | skb->dev = dev; | 366 | skb->dev = dev; |
367 | memcpy(skb_put(skb, count), sl->rbuff, count); | 367 | skb_put_data(skb, sl->rbuff, count); |
368 | skb_reset_mac_header(skb); | 368 | skb_reset_mac_header(skb); |
369 | skb->protocol = htons(ETH_P_IP); | 369 | skb->protocol = htons(ETH_P_IP); |
370 | netif_rx_ni(skb); | 370 | netif_rx_ni(skb); |
diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c index 125cff57c759..90facc5ecab0 100644 --- a/drivers/net/usb/asix_common.c +++ b/drivers/net/usb/asix_common.c | |||
@@ -167,8 +167,8 @@ int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb, | |||
167 | } | 167 | } |
168 | 168 | ||
169 | if (rx->ax_skb) { | 169 | if (rx->ax_skb) { |
170 | data = skb_put(rx->ax_skb, copy_length); | 170 | data = skb_put_data(rx->ax_skb, skb->data + offset, |
171 | memcpy(data, skb->data + offset, copy_length); | 171 | copy_length); |
172 | if (!rx->remaining) | 172 | if (!rx->remaining) |
173 | usbnet_skb_return(dev, rx->ax_skb); | 173 | usbnet_skb_return(dev, rx->ax_skb); |
174 | } | 174 | } |
diff --git a/drivers/net/usb/cdc-phonet.c b/drivers/net/usb/cdc-phonet.c index c7a350bbaaa7..2952cb570996 100644 --- a/drivers/net/usb/cdc-phonet.c +++ b/drivers/net/usb/cdc-phonet.c | |||
@@ -162,7 +162,7 @@ static void rx_complete(struct urb *req) | |||
162 | skb = pnd->rx_skb = netdev_alloc_skb(dev, 12); | 162 | skb = pnd->rx_skb = netdev_alloc_skb(dev, 12); |
163 | if (likely(skb)) { | 163 | if (likely(skb)) { |
164 | /* Can't use pskb_pull() on page in IRQ */ | 164 | /* Can't use pskb_pull() on page in IRQ */ |
165 | memcpy(skb_put(skb, 1), page_address(page), 1); | 165 | skb_put_data(skb, page_address(page), 1); |
166 | skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, | 166 | skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, |
167 | page, 1, req->actual_length, | 167 | page, 1, req->actual_length, |
168 | PAGE_SIZE); | 168 | PAGE_SIZE); |
diff --git a/drivers/net/usb/cdc_mbim.c b/drivers/net/usb/cdc_mbim.c index a6b997cffd3b..18fa45fc979b 100644 --- a/drivers/net/usb/cdc_mbim.c +++ b/drivers/net/usb/cdc_mbim.c | |||
@@ -399,7 +399,7 @@ static struct sk_buff *cdc_mbim_process_dgram(struct usbnet *dev, u8 *buf, size_ | |||
399 | memcpy(eth_hdr(skb)->h_dest, dev->net->dev_addr, ETH_ALEN); | 399 | memcpy(eth_hdr(skb)->h_dest, dev->net->dev_addr, ETH_ALEN); |
400 | 400 | ||
401 | /* add datagram */ | 401 | /* add datagram */ |
402 | memcpy(skb_put(skb, len), buf, len); | 402 | skb_put_data(skb, buf, len); |
403 | 403 | ||
404 | /* map MBIM session to VLAN */ | 404 | /* map MBIM session to VLAN */ |
405 | if (tci) | 405 | if (tci) |
diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 7f02954772c6..8a4c8a1b9dd3 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c | |||
@@ -1180,7 +1180,7 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev, struct sk_buff *skb, __le32 sign) | |||
1180 | ndp16->dpe16[index].wDatagramLength = cpu_to_le16(skb->len); | 1180 | ndp16->dpe16[index].wDatagramLength = cpu_to_le16(skb->len); |
1181 | ndp16->dpe16[index].wDatagramIndex = cpu_to_le16(skb_out->len); | 1181 | ndp16->dpe16[index].wDatagramIndex = cpu_to_le16(skb_out->len); |
1182 | ndp16->wLength = cpu_to_le16(ndplen + sizeof(struct usb_cdc_ncm_dpe16)); | 1182 | ndp16->wLength = cpu_to_le16(ndplen + sizeof(struct usb_cdc_ncm_dpe16)); |
1183 | memcpy(skb_put(skb_out, skb->len), skb->data, skb->len); | 1183 | skb_put_data(skb_out, skb->data, skb->len); |
1184 | ctx->tx_curr_frame_payload += skb->len; /* count real tx payload data */ | 1184 | ctx->tx_curr_frame_payload += skb->len; /* count real tx payload data */ |
1185 | dev_kfree_skb_any(skb); | 1185 | dev_kfree_skb_any(skb); |
1186 | skb = NULL; | 1186 | skb = NULL; |
@@ -1229,7 +1229,7 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev, struct sk_buff *skb, __le32 sign) | |||
1229 | nth16 = (struct usb_cdc_ncm_nth16 *)skb_out->data; | 1229 | nth16 = (struct usb_cdc_ncm_nth16 *)skb_out->data; |
1230 | cdc_ncm_align_tail(skb_out, ctx->tx_ndp_modulus, 0, ctx->tx_max); | 1230 | cdc_ncm_align_tail(skb_out, ctx->tx_ndp_modulus, 0, ctx->tx_max); |
1231 | nth16->wNdpIndex = cpu_to_le16(skb_out->len); | 1231 | nth16->wNdpIndex = cpu_to_le16(skb_out->len); |
1232 | memcpy(skb_put(skb_out, ctx->max_ndp_size), ctx->delayed_ndp16, ctx->max_ndp_size); | 1232 | skb_put_data(skb_out, ctx->delayed_ndp16, ctx->max_ndp_size); |
1233 | 1233 | ||
1234 | /* Zero out delayed NDP - signature checking will naturally fail. */ | 1234 | /* Zero out delayed NDP - signature checking will naturally fail. */ |
1235 | ndp16 = memset(ctx->delayed_ndp16, 0, ctx->max_ndp_size); | 1235 | ndp16 = memset(ctx->delayed_ndp16, 0, ctx->max_ndp_size); |
@@ -1497,7 +1497,7 @@ next_ndp: | |||
1497 | skb = netdev_alloc_skb_ip_align(dev->net, len); | 1497 | skb = netdev_alloc_skb_ip_align(dev->net, len); |
1498 | if (!skb) | 1498 | if (!skb) |
1499 | goto error; | 1499 | goto error; |
1500 | memcpy(skb_put(skb, len), skb_in->data + offset, len); | 1500 | skb_put_data(skb, skb_in->data + offset, len); |
1501 | usbnet_skb_return(dev, skb); | 1501 | usbnet_skb_return(dev, skb); |
1502 | payload += len; /* count payload bytes in this NTB */ | 1502 | payload += len; /* count payload bytes in this NTB */ |
1503 | } | 1503 | } |
diff --git a/drivers/net/usb/gl620a.c b/drivers/net/usb/gl620a.c index 1cc24e6f23e2..29276e54bb8b 100644 --- a/drivers/net/usb/gl620a.c +++ b/drivers/net/usb/gl620a.c | |||
@@ -121,8 +121,7 @@ static int genelink_rx_fixup(struct usbnet *dev, struct sk_buff *skb) | |||
121 | if (gl_skb) { | 121 | if (gl_skb) { |
122 | 122 | ||
123 | // copy the packet data to the new skb | 123 | // copy the packet data to the new skb |
124 | memcpy(skb_put(gl_skb, size), | 124 | skb_put_data(gl_skb, packet->packet_data, size); |
125 | packet->packet_data, size); | ||
126 | usbnet_skb_return(dev, gl_skb); | 125 | usbnet_skb_return(dev, gl_skb); |
127 | } | 126 | } |
128 | 127 | ||
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 00067a0c51ca..908ada4ca21c 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c | |||
@@ -911,11 +911,9 @@ static void packetizeRx(struct hso_net *odev, unsigned char *ip_pkt, | |||
911 | 911 | ||
912 | /* Copy what we got so far. make room for iphdr | 912 | /* Copy what we got so far. make room for iphdr |
913 | * after tail. */ | 913 | * after tail. */ |
914 | tmp_rx_buf = | 914 | tmp_rx_buf = skb_put_data(odev->skb_rx_buf, |
915 | skb_put(odev->skb_rx_buf, | 915 | (char *)&(odev->rx_ip_hdr), |
916 | sizeof(struct iphdr)); | 916 | sizeof(struct iphdr)); |
917 | memcpy(tmp_rx_buf, (char *)&(odev->rx_ip_hdr), | ||
918 | sizeof(struct iphdr)); | ||
919 | 917 | ||
920 | /* ETH_HLEN */ | 918 | /* ETH_HLEN */ |
921 | odev->rx_buf_size = sizeof(struct iphdr); | 919 | odev->rx_buf_size = sizeof(struct iphdr); |
@@ -934,8 +932,9 @@ static void packetizeRx(struct hso_net *odev, unsigned char *ip_pkt, | |||
934 | /* Copy the rest of the bytes that are left in the | 932 | /* Copy the rest of the bytes that are left in the |
935 | * buffer into the waiting sk_buf. */ | 933 | * buffer into the waiting sk_buf. */ |
936 | /* Make room for temp_bytes after tail. */ | 934 | /* Make room for temp_bytes after tail. */ |
937 | tmp_rx_buf = skb_put(odev->skb_rx_buf, temp_bytes); | 935 | tmp_rx_buf = skb_put_data(odev->skb_rx_buf, |
938 | memcpy(tmp_rx_buf, ip_pkt + buffer_offset, temp_bytes); | 936 | ip_pkt + buffer_offset, |
937 | temp_bytes); | ||
939 | 938 | ||
940 | odev->rx_buf_missing -= temp_bytes; | 939 | odev->rx_buf_missing -= temp_bytes; |
941 | count -= temp_bytes; | 940 | count -= temp_bytes; |
diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c index 76465b117b72..0f213ea22c75 100644 --- a/drivers/net/usb/ipheth.c +++ b/drivers/net/usb/ipheth.c | |||
@@ -253,7 +253,7 @@ static void ipheth_rcvbulk_callback(struct urb *urb) | |||
253 | return; | 253 | return; |
254 | } | 254 | } |
255 | 255 | ||
256 | memcpy(skb_put(skb, len), buf, len); | 256 | skb_put_data(skb, buf, len); |
257 | skb->dev = dev->net; | 257 | skb->dev = dev->net; |
258 | skb->protocol = eth_type_trans(skb, dev->net); | 258 | skb->protocol = eth_type_trans(skb, dev->net); |
259 | 259 | ||
diff --git a/drivers/net/usb/lg-vl600.c b/drivers/net/usb/lg-vl600.c index 5714107533bb..d633492bf9eb 100644 --- a/drivers/net/usb/lg-vl600.c +++ b/drivers/net/usb/lg-vl600.c | |||
@@ -135,7 +135,7 @@ static int vl600_rx_fixup(struct usbnet *dev, struct sk_buff *skb) | |||
135 | } | 135 | } |
136 | 136 | ||
137 | buf = s->current_rx_buf; | 137 | buf = s->current_rx_buf; |
138 | memcpy(skb_put(buf, skb->len), skb->data, skb->len); | 138 | skb_put_data(buf, skb->data, skb->len); |
139 | } else if (skb->len < 4) { | 139 | } else if (skb->len < 4) { |
140 | netif_err(dev, ifup, dev->net, "Frame too short\n"); | 140 | netif_err(dev, ifup, dev->net, "Frame too short\n"); |
141 | dev->net->stats.rx_length_errors++; | 141 | dev->net->stats.rx_length_errors++; |
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c index 32a22f4e8356..ffd229ec8352 100644 --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c | |||
@@ -188,7 +188,7 @@ static int qmimux_rx_fixup(struct usbnet *dev, struct sk_buff *skb) | |||
188 | goto skip; | 188 | goto skip; |
189 | } | 189 | } |
190 | 190 | ||
191 | memcpy(skb_put(skbn, len), skb->data + offset, len); | 191 | skb_put_data(skbn, skb->data + offset, len); |
192 | if (netif_rx(skbn) != NET_RX_SUCCESS) | 192 | if (netif_rx(skbn) != NET_RX_SUCCESS) |
193 | return 0; | 193 | return 0; |
194 | 194 | ||
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 1f8c15cb63b0..6bacbd2f0eca 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
@@ -305,7 +305,7 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi, | |||
305 | copy = len; | 305 | copy = len; |
306 | if (copy > skb_tailroom(skb)) | 306 | if (copy > skb_tailroom(skb)) |
307 | copy = skb_tailroom(skb); | 307 | copy = skb_tailroom(skb); |
308 | memcpy(skb_put(skb, copy), p, copy); | 308 | skb_put_data(skb, p, copy); |
309 | 309 | ||
310 | len -= copy; | 310 | len -= copy; |
311 | offset += copy; | 311 | offset += copy; |
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c index 33265eb50420..bd46b2552980 100644 --- a/drivers/net/wan/farsync.c +++ b/drivers/net/wan/farsync.c | |||
@@ -857,7 +857,7 @@ fst_rx_dma_complete(struct fst_card_info *card, struct fst_port_info *port, | |||
857 | 857 | ||
858 | dbg(DBG_TX, "fst_rx_dma_complete\n"); | 858 | dbg(DBG_TX, "fst_rx_dma_complete\n"); |
859 | pi = port->index; | 859 | pi = port->index; |
860 | memcpy(skb_put(skb, len), card->rx_dma_handle_host, len); | 860 | skb_put_data(skb, card->rx_dma_handle_host, len); |
861 | 861 | ||
862 | /* Reset buffer descriptor */ | 862 | /* Reset buffer descriptor */ |
863 | FST_WRB(card, rxDescrRing[pi][rxp].bits, DMA_OWN); | 863 | FST_WRB(card, rxDescrRing[pi][rxp].bits, DMA_OWN); |
diff --git a/drivers/net/wan/hdlc_ppp.c b/drivers/net/wan/hdlc_ppp.c index 47fdb87d3567..f5b4ad45831a 100644 --- a/drivers/net/wan/hdlc_ppp.c +++ b/drivers/net/wan/hdlc_ppp.c | |||
@@ -234,9 +234,9 @@ static void ppp_tx_cp(struct net_device *dev, u16 pid, u8 code, | |||
234 | cp->len = htons(sizeof(struct cp_header) + magic_len + len); | 234 | cp->len = htons(sizeof(struct cp_header) + magic_len + len); |
235 | 235 | ||
236 | if (magic_len) | 236 | if (magic_len) |
237 | memcpy(skb_put(skb, magic_len), &magic, magic_len); | 237 | skb_put_data(skb, &magic, magic_len); |
238 | if (len) | 238 | if (len) |
239 | memcpy(skb_put(skb, len), data, len); | 239 | skb_put_data(skb, data, len); |
240 | 240 | ||
241 | #if DEBUG_CP | 241 | #if DEBUG_CP |
242 | BUG_ON(code >= CP_CODES); | 242 | BUG_ON(code >= CP_CODES); |
diff --git a/drivers/net/wan/x25_asy.c b/drivers/net/wan/x25_asy.c index 878b05d06fc7..40ee80c03c94 100644 --- a/drivers/net/wan/x25_asy.c +++ b/drivers/net/wan/x25_asy.c | |||
@@ -202,7 +202,7 @@ static void x25_asy_bump(struct x25_asy *sl) | |||
202 | return; | 202 | return; |
203 | } | 203 | } |
204 | skb_push(skb, 1); /* LAPB internal control */ | 204 | skb_push(skb, 1); /* LAPB internal control */ |
205 | memcpy(skb_put(skb, count), sl->rbuff, count); | 205 | skb_put_data(skb, sl->rbuff, count); |
206 | skb->protocol = x25_type_trans(skb, sl->dev); | 206 | skb->protocol = x25_type_trans(skb, sl->dev); |
207 | err = lapb_data_received(skb->dev, skb); | 207 | err = lapb_data_received(skb->dev, skb); |
208 | if (err != LAPB_OK) { | 208 | if (err != LAPB_OK) { |
diff --git a/drivers/net/wimax/i2400m/netdev.c b/drivers/net/wimax/i2400m/netdev.c index 7f64e74d746b..dd7f3168c07d 100644 --- a/drivers/net/wimax/i2400m/netdev.c +++ b/drivers/net/wimax/i2400m/netdev.c | |||
@@ -488,7 +488,7 @@ void i2400m_net_rx(struct i2400m *i2400m, struct sk_buff *skb_rx, | |||
488 | net_dev->stats.rx_dropped++; | 488 | net_dev->stats.rx_dropped++; |
489 | goto error_skb_realloc; | 489 | goto error_skb_realloc; |
490 | } | 490 | } |
491 | memcpy(skb_put(skb, buf_len), buf, buf_len); | 491 | skb_put_data(skb, buf, buf_len); |
492 | } | 492 | } |
493 | i2400m_rx_fake_eth_header(i2400m->wimax_dev.net_dev, | 493 | i2400m_rx_fake_eth_header(i2400m->wimax_dev.net_dev, |
494 | skb->data - ETH_HLEN, | 494 | skb->data - ETH_HLEN, |
diff --git a/drivers/net/wireless/admtek/adm8211.c b/drivers/net/wireless/admtek/adm8211.c index ed626f568b58..5f64f3928c35 100644 --- a/drivers/net/wireless/admtek/adm8211.c +++ b/drivers/net/wireless/admtek/adm8211.c | |||
@@ -390,9 +390,9 @@ static void adm8211_interrupt_rci(struct ieee80211_hw *dev) | |||
390 | priv->pdev, | 390 | priv->pdev, |
391 | priv->rx_buffers[entry].mapping, | 391 | priv->rx_buffers[entry].mapping, |
392 | pktlen, PCI_DMA_FROMDEVICE); | 392 | pktlen, PCI_DMA_FROMDEVICE); |
393 | memcpy(skb_put(skb, pktlen), | 393 | skb_put_data(skb, |
394 | skb_tail_pointer(priv->rx_buffers[entry].skb), | 394 | skb_tail_pointer(priv->rx_buffers[entry].skb), |
395 | pktlen); | 395 | pktlen); |
396 | pci_dma_sync_single_for_device( | 396 | pci_dma_sync_single_for_device( |
397 | priv->pdev, | 397 | priv->pdev, |
398 | priv->rx_buffers[entry].mapping, | 398 | priv->rx_buffers[entry].mapping, |
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 4674ff33d320..16cf250f6c39 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c | |||
@@ -3475,9 +3475,8 @@ static void ath10k_tx_h_add_p2p_noa_ie(struct ath10k *ar, | |||
3475 | if (arvif->u.ap.noa_data) | 3475 | if (arvif->u.ap.noa_data) |
3476 | if (!pskb_expand_head(skb, 0, arvif->u.ap.noa_len, | 3476 | if (!pskb_expand_head(skb, 0, arvif->u.ap.noa_len, |
3477 | GFP_ATOMIC)) | 3477 | GFP_ATOMIC)) |
3478 | memcpy(skb_put(skb, arvif->u.ap.noa_len), | 3478 | skb_put_data(skb, arvif->u.ap.noa_data, |
3479 | arvif->u.ap.noa_data, | 3479 | arvif->u.ap.noa_len); |
3480 | arvif->u.ap.noa_len); | ||
3481 | spin_unlock_bh(&ar->data_lock); | 3480 | spin_unlock_bh(&ar->data_lock); |
3482 | } | 3481 | } |
3483 | } | 3482 | } |
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c index 6afc8d27f0d5..a66e2482897f 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c | |||
@@ -3304,9 +3304,8 @@ static void ath10k_wmi_update_noa(struct ath10k *ar, struct ath10k_vif *arvif, | |||
3304 | 3304 | ||
3305 | if (arvif->u.ap.noa_data) | 3305 | if (arvif->u.ap.noa_data) |
3306 | if (!pskb_expand_head(bcn, 0, arvif->u.ap.noa_len, GFP_ATOMIC)) | 3306 | if (!pskb_expand_head(bcn, 0, arvif->u.ap.noa_len, GFP_ATOMIC)) |
3307 | memcpy(skb_put(bcn, arvif->u.ap.noa_len), | 3307 | skb_put_data(bcn, arvif->u.ap.noa_data, |
3308 | arvif->u.ap.noa_data, | 3308 | arvif->u.ap.noa_len); |
3309 | arvif->u.ap.noa_len); | ||
3310 | } | 3309 | } |
3311 | 3310 | ||
3312 | static int ath10k_wmi_op_pull_swba_ev(struct ath10k *ar, struct sk_buff *skb, | 3311 | static int ath10k_wmi_op_pull_swba_ev(struct ath10k *ar, struct sk_buff *skb, |
diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c index 373b1e9457fd..f0439f2d566b 100644 --- a/drivers/net/wireless/ath/ath9k/channel.c +++ b/drivers/net/wireless/ath/ath9k/channel.c | |||
@@ -1005,7 +1005,7 @@ static void ath_scan_send_probe(struct ath_softc *sc, | |||
1005 | info->flags |= IEEE80211_TX_CTL_NO_CCK_RATE; | 1005 | info->flags |= IEEE80211_TX_CTL_NO_CCK_RATE; |
1006 | 1006 | ||
1007 | if (req->ie_len) | 1007 | if (req->ie_len) |
1008 | memcpy(skb_put(skb, req->ie_len), req->ie, req->ie_len); | 1008 | skb_put_data(skb, req->ie, req->ie_len); |
1009 | 1009 | ||
1010 | skb_set_queue_mapping(skb, IEEE80211_AC_VO); | 1010 | skb_set_queue_mapping(skb, IEEE80211_AC_VO); |
1011 | 1011 | ||
@@ -1521,8 +1521,7 @@ void ath9k_beacon_add_noa(struct ath_softc *sc, struct ath_vif *avp, | |||
1521 | noa_desc = !!avp->offchannel_duration + !!avp->noa_duration; | 1521 | noa_desc = !!avp->offchannel_duration + !!avp->noa_duration; |
1522 | noa_len = 2 + sizeof(struct ieee80211_p2p_noa_desc) * noa_desc; | 1522 | noa_len = 2 + sizeof(struct ieee80211_p2p_noa_desc) * noa_desc; |
1523 | 1523 | ||
1524 | hdr = skb_put(skb, sizeof(noa_ie_hdr)); | 1524 | hdr = skb_put_data(skb, noa_ie_hdr, sizeof(noa_ie_hdr)); |
1525 | memcpy(hdr, noa_ie_hdr, sizeof(noa_ie_hdr)); | ||
1526 | hdr[1] = sizeof(noa_ie_hdr) + noa_len - 2; | 1525 | hdr[1] = sizeof(noa_ie_hdr) + noa_len - 2; |
1527 | hdr[7] = noa_len; | 1526 | hdr[7] = noa_len; |
1528 | 1527 | ||
diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c index 9c16e2a6d185..c51c69b1ad96 100644 --- a/drivers/net/wireless/ath/ath9k/wmi.c +++ b/drivers/net/wireless/ath/ath9k/wmi.c | |||
@@ -312,8 +312,7 @@ int ath9k_wmi_cmd(struct wmi *wmi, enum wmi_cmd_id cmd_id, | |||
312 | skb_reserve(skb, headroom); | 312 | skb_reserve(skb, headroom); |
313 | 313 | ||
314 | if (cmd_len != 0 && cmd_buf != NULL) { | 314 | if (cmd_len != 0 && cmd_buf != NULL) { |
315 | data = (u8 *) skb_put(skb, cmd_len); | 315 | data = skb_put_data(skb, cmd_buf, cmd_len); |
316 | memcpy(data, cmd_buf, cmd_len); | ||
317 | } | 316 | } |
318 | 317 | ||
319 | mutex_lock(&wmi->op_mutex); | 318 | mutex_lock(&wmi->op_mutex); |
diff --git a/drivers/net/wireless/ath/carl9170/rx.c b/drivers/net/wireless/ath/carl9170/rx.c index b2166726b05d..705063259c8f 100644 --- a/drivers/net/wireless/ath/carl9170/rx.c +++ b/drivers/net/wireless/ath/carl9170/rx.c | |||
@@ -481,7 +481,7 @@ static struct sk_buff *carl9170_rx_copy_data(u8 *buf, int len) | |||
481 | skb = dev_alloc_skb(len + reserved); | 481 | skb = dev_alloc_skb(len + reserved); |
482 | if (likely(skb)) { | 482 | if (likely(skb)) { |
483 | skb_reserve(skb, reserved); | 483 | skb_reserve(skb, reserved); |
484 | memcpy(skb_put(skb, len), buf, len); | 484 | skb_put_data(skb, buf, len); |
485 | } | 485 | } |
486 | 486 | ||
487 | return skb; | 487 | return skb; |
@@ -916,7 +916,7 @@ static void carl9170_rx_stream(struct ar9170 *ar, void *buf, unsigned int len) | |||
916 | } | 916 | } |
917 | } | 917 | } |
918 | 918 | ||
919 | memcpy(skb_put(ar->rx_failover, tlen), tbuf, tlen); | 919 | skb_put_data(ar->rx_failover, tbuf, tlen); |
920 | ar->rx_failover_missing -= tlen; | 920 | ar->rx_failover_missing -= tlen; |
921 | 921 | ||
922 | if (ar->rx_failover_missing <= 0) { | 922 | if (ar->rx_failover_missing <= 0) { |
@@ -958,7 +958,7 @@ static void carl9170_rx_stream(struct ar9170 *ar, void *buf, unsigned int len) | |||
958 | * the rx - descriptor comes round again. | 958 | * the rx - descriptor comes round again. |
959 | */ | 959 | */ |
960 | 960 | ||
961 | memcpy(skb_put(ar->rx_failover, tlen), tbuf, tlen); | 961 | skb_put_data(ar->rx_failover, tbuf, tlen); |
962 | ar->rx_failover_missing = clen - tlen; | 962 | ar->rx_failover_missing = clen - tlen; |
963 | return; | 963 | return; |
964 | } | 964 | } |
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c index 814c35645b73..cff9c585972f 100644 --- a/drivers/net/wireless/ath/wil6210/wmi.c +++ b/drivers/net/wireless/ath/wil6210/wmi.c | |||
@@ -681,7 +681,7 @@ static void wmi_evt_eapol_rx(struct wil6210_priv *wil, int id, | |||
681 | ether_addr_copy(eth->h_dest, ndev->dev_addr); | 681 | ether_addr_copy(eth->h_dest, ndev->dev_addr); |
682 | ether_addr_copy(eth->h_source, evt->src_mac); | 682 | ether_addr_copy(eth->h_source, evt->src_mac); |
683 | eth->h_proto = cpu_to_be16(ETH_P_PAE); | 683 | eth->h_proto = cpu_to_be16(ETH_P_PAE); |
684 | memcpy(skb_put(skb, eapol_len), evt->eapol, eapol_len); | 684 | skb_put_data(skb, evt->eapol, eapol_len); |
685 | skb->protocol = eth_type_trans(skb, ndev); | 685 | skb->protocol = eth_type_trans(skb, ndev); |
686 | if (likely(netif_rx_ni(skb) == NET_RX_SUCCESS)) { | 686 | if (likely(netif_rx_ni(skb) == NET_RX_SUCCESS)) { |
687 | ndev->stats.rx_packets++; | 687 | ndev->stats.rx_packets++; |
diff --git a/drivers/net/wireless/atmel/atmel.c b/drivers/net/wireless/atmel/atmel.c index 27b110dc8cc6..b68436b23a63 100644 --- a/drivers/net/wireless/atmel/atmel.c +++ b/drivers/net/wireless/atmel/atmel.c | |||
@@ -1036,9 +1036,8 @@ static void frag_rx_path(struct atmel_private *priv, | |||
1036 | priv->dev->stats.rx_dropped++; | 1036 | priv->dev->stats.rx_dropped++; |
1037 | } else { | 1037 | } else { |
1038 | skb_reserve(skb, 2); | 1038 | skb_reserve(skb, 2); |
1039 | memcpy(skb_put(skb, priv->frag_len + 12), | 1039 | skb_put_data(skb, priv->rx_buf, |
1040 | priv->rx_buf, | 1040 | priv->frag_len + 12); |
1041 | priv->frag_len + 12); | ||
1042 | skb->protocol = eth_type_trans(skb, priv->dev); | 1041 | skb->protocol = eth_type_trans(skb, priv->dev); |
1043 | skb->ip_summed = CHECKSUM_NONE; | 1042 | skb->ip_summed = CHECKSUM_NONE; |
1044 | netif_rx(skb); | 1043 | netif_rx(skb); |
diff --git a/drivers/net/wireless/broadcom/b43legacy/dma.c b/drivers/net/wireless/broadcom/b43legacy/dma.c index f9dd892b9f27..cfa617ddb2f1 100644 --- a/drivers/net/wireless/broadcom/b43legacy/dma.c +++ b/drivers/net/wireless/broadcom/b43legacy/dma.c | |||
@@ -1072,7 +1072,7 @@ static int dma_tx_fragment(struct b43legacy_dmaring *ring, | |||
1072 | goto out_unmap_hdr; | 1072 | goto out_unmap_hdr; |
1073 | } | 1073 | } |
1074 | 1074 | ||
1075 | memcpy(skb_put(bounce_skb, skb->len), skb->data, skb->len); | 1075 | skb_put_data(bounce_skb, skb->data, skb->len); |
1076 | memcpy(bounce_skb->cb, skb->cb, sizeof(skb->cb)); | 1076 | memcpy(bounce_skb->cb, skb->cb, sizeof(skb->cb)); |
1077 | bounce_skb->dev = skb->dev; | 1077 | bounce_skb->dev = skb->dev; |
1078 | skb_set_queue_mapping(bounce_skb, skb_get_queue_mapping(skb)); | 1078 | skb_set_queue_mapping(bounce_skb, skb_get_queue_mapping(skb)); |
diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c index bbc579b647b6..e0c690b48d4e 100644 --- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c | |||
@@ -10274,8 +10274,9 @@ static int ipw_tx_skb(struct ipw_priv *priv, struct libipw_txb *txb, | |||
10274 | 10274 | ||
10275 | printk(KERN_INFO "Adding frag %d %d...\n", | 10275 | printk(KERN_INFO "Adding frag %d %d...\n", |
10276 | j, size); | 10276 | j, size); |
10277 | memcpy(skb_put(skb, size), | 10277 | skb_put_data(skb, |
10278 | txb->fragments[j]->data + hdr_len, size); | 10278 | txb->fragments[j]->data + hdr_len, |
10279 | size); | ||
10279 | } | 10280 | } |
10280 | dev_kfree_skb_any(txb->fragments[i]); | 10281 | dev_kfree_skb_any(txb->fragments[i]); |
10281 | txb->fragments[i] = skb; | 10282 | txb->fragments[i] = skb; |
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_tx.c b/drivers/net/wireless/intel/ipw2x00/libipw_tx.c index 048f1e3ada11..5339d1eeb2f7 100644 --- a/drivers/net/wireless/intel/ipw2x00/libipw_tx.c +++ b/drivers/net/wireless/intel/ipw2x00/libipw_tx.c | |||
@@ -359,7 +359,7 @@ netdev_tx_t libipw_xmit(struct sk_buff *skb, struct net_device *dev) | |||
359 | goto failed; | 359 | goto failed; |
360 | 360 | ||
361 | skb_reserve(skb_new, crypt->ops->extra_msdu_prefix_len); | 361 | skb_reserve(skb_new, crypt->ops->extra_msdu_prefix_len); |
362 | memcpy(skb_put(skb_new, hdr_len), &header, hdr_len); | 362 | skb_put_data(skb_new, &header, hdr_len); |
363 | snapped = 1; | 363 | snapped = 1; |
364 | libipw_copy_snap(skb_put(skb_new, SNAP_SIZE + sizeof(u16)), | 364 | libipw_copy_snap(skb_put(skb_new, SNAP_SIZE + sizeof(u16)), |
365 | ether_type); | 365 | ether_type); |
@@ -470,9 +470,7 @@ netdev_tx_t libipw_xmit(struct sk_buff *skb, struct net_device *dev) | |||
470 | skb_reserve(skb_frag, | 470 | skb_reserve(skb_frag, |
471 | crypt->ops->extra_mpdu_prefix_len); | 471 | crypt->ops->extra_mpdu_prefix_len); |
472 | 472 | ||
473 | frag_hdr = | 473 | frag_hdr = skb_put_data(skb_frag, &header, hdr_len); |
474 | (struct libipw_hdr_3addrqos *)skb_put(skb_frag, hdr_len); | ||
475 | memcpy(frag_hdr, &header, hdr_len); | ||
476 | 474 | ||
477 | /* If this is not the last fragment, then add the MOREFRAGS | 475 | /* If this is not the last fragment, then add the MOREFRAGS |
478 | * bit to the frame control */ | 476 | * bit to the frame control */ |
diff --git a/drivers/net/wireless/intel/iwlegacy/3945.c b/drivers/net/wireless/intel/iwlegacy/3945.c index 080ea8155b90..dbf164d48ed3 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945.c +++ b/drivers/net/wireless/intel/iwlegacy/3945.c | |||
@@ -520,7 +520,7 @@ il3945_pass_packet_to_mac80211(struct il_priv *il, struct il_rx_buf *rxb, | |||
520 | * and do not consume a full page | 520 | * and do not consume a full page |
521 | */ | 521 | */ |
522 | if (len <= SMALL_PACKET_SIZE) { | 522 | if (len <= SMALL_PACKET_SIZE) { |
523 | memcpy(skb_put(skb, len), rx_hdr->payload, len); | 523 | skb_put_data(skb, rx_hdr->payload, len); |
524 | } else { | 524 | } else { |
525 | skb_add_rx_frag(skb, 0, rxb->page, | 525 | skb_add_rx_frag(skb, 0, rxb->page, |
526 | (void *)rx_hdr->payload - (void *)pkt, len, | 526 | (void *)rx_hdr->payload - (void *)pkt, len, |
diff --git a/drivers/net/wireless/intel/iwlegacy/4965-mac.c b/drivers/net/wireless/intel/iwlegacy/4965-mac.c index 49a2ff15ddae..5b51fba75595 100644 --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c | |||
@@ -606,7 +606,7 @@ il4965_pass_packet_to_mac80211(struct il_priv *il, struct ieee80211_hdr *hdr, | |||
606 | } | 606 | } |
607 | 607 | ||
608 | if (len <= SMALL_PACKET_SIZE) { | 608 | if (len <= SMALL_PACKET_SIZE) { |
609 | memcpy(skb_put(skb, len), hdr, len); | 609 | skb_put_data(skb, hdr, len); |
610 | } else { | 610 | } else { |
611 | skb_add_rx_frag(skb, 0, rxb->page, (void *)hdr - rxb_addr(rxb), | 611 | skb_add_rx_frag(skb, 0, rxb->page, (void *)hdr - rxb_addr(rxb), |
612 | len, PAGE_SIZE << il->hw_params.rx_page_order); | 612 | len, PAGE_SIZE << il->hw_params.rx_page_order); |
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/rx.c b/drivers/net/wireless/intel/iwlwifi/dvm/rx.c index adfd6307edca..eaad7389b67c 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/dvm/rx.c | |||
@@ -657,7 +657,7 @@ static void iwlagn_pass_packet_to_mac80211(struct iwl_priv *priv, | |||
657 | */ | 657 | */ |
658 | hdrlen = (len <= skb_tailroom(skb)) ? len : sizeof(*hdr); | 658 | hdrlen = (len <= skb_tailroom(skb)) ? len : sizeof(*hdr); |
659 | 659 | ||
660 | memcpy(skb_put(skb, hdrlen), hdr, hdrlen); | 660 | skb_put_data(skb, hdr, hdrlen); |
661 | fraglen = len - hdrlen; | 661 | fraglen = len - hdrlen; |
662 | 662 | ||
663 | if (fraglen) { | 663 | if (fraglen) { |
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/tx.c b/drivers/net/wireless/intel/iwlwifi/dvm/tx.c index 4b97371c3b42..adaa2f0097cc 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/dvm/tx.c | |||
@@ -319,8 +319,7 @@ int iwlagn_tx_skb(struct iwl_priv *priv, | |||
319 | if (noa_data && | 319 | if (noa_data && |
320 | pskb_expand_head(skb, 0, noa_data->length, | 320 | pskb_expand_head(skb, 0, noa_data->length, |
321 | GFP_ATOMIC) == 0) { | 321 | GFP_ATOMIC) == 0) { |
322 | memcpy(skb_put(skb, noa_data->length), | 322 | skb_put_data(skb, noa_data->data, noa_data->length); |
323 | noa_data->data, noa_data->length); | ||
324 | hdr = (struct ieee80211_hdr *)skb->data; | 323 | hdr = (struct ieee80211_hdr *)skb->data; |
325 | } | 324 | } |
326 | } | 325 | } |
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c index 119a3bd92c50..7a56a0ac151c 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c | |||
@@ -1431,7 +1431,7 @@ static void iwl_mvm_report_wakeup_reasons(struct iwl_mvm *mvm, | |||
1431 | if (!pkt) | 1431 | if (!pkt) |
1432 | goto report; | 1432 | goto report; |
1433 | 1433 | ||
1434 | memcpy(skb_put(pkt, hdrlen), pktdata, hdrlen); | 1434 | skb_put_data(pkt, pktdata, hdrlen); |
1435 | pktdata += hdrlen; | 1435 | pktdata += hdrlen; |
1436 | pktsize -= hdrlen; | 1436 | pktsize -= hdrlen; |
1437 | 1437 | ||
@@ -1463,7 +1463,7 @@ static void iwl_mvm_report_wakeup_reasons(struct iwl_mvm *mvm, | |||
1463 | pktsize -= ivlen + icvlen; | 1463 | pktsize -= ivlen + icvlen; |
1464 | pktdata += ivlen; | 1464 | pktdata += ivlen; |
1465 | 1465 | ||
1466 | memcpy(skb_put(pkt, pktsize), pktdata, pktsize); | 1466 | skb_put_data(pkt, pktdata, pktsize); |
1467 | 1467 | ||
1468 | if (ieee80211_data_to_8023(pkt, vif->addr, vif->type)) | 1468 | if (ieee80211_data_to_8023(pkt, vif->addr, vif->type)) |
1469 | goto report; | 1469 | goto report; |
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c index fd2fc46e2fe5..15d13017c1df 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | |||
@@ -1596,7 +1596,7 @@ void iwl_mvm_rx_stored_beacon_notif(struct iwl_mvm *mvm, | |||
1596 | rx_status.band); | 1596 | rx_status.band); |
1597 | 1597 | ||
1598 | /* copy the data */ | 1598 | /* copy the data */ |
1599 | memcpy(skb_put(skb, size), sb->data, size); | 1599 | skb_put_data(skb, sb->data, size); |
1600 | memcpy(IEEE80211_SKB_RXCB(skb), &rx_status, sizeof(rx_status)); | 1600 | memcpy(IEEE80211_SKB_RXCB(skb), &rx_status, sizeof(rx_status)); |
1601 | 1601 | ||
1602 | /* pass it as regular rx to mac80211 */ | 1602 | /* pass it as regular rx to mac80211 */ |
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rx.c b/drivers/net/wireless/intel/iwlwifi/mvm/rx.c index fd1dd06c4f18..2c07719aa45c 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rx.c | |||
@@ -133,7 +133,7 @@ static void iwl_mvm_pass_packet_to_mac80211(struct iwl_mvm *mvm, | |||
133 | */ | 133 | */ |
134 | hdrlen = (len <= skb_tailroom(skb)) ? len : hdrlen + crypt_len + 8; | 134 | hdrlen = (len <= skb_tailroom(skb)) ? len : hdrlen + crypt_len + 8; |
135 | 135 | ||
136 | memcpy(skb_put(skb, hdrlen), hdr, hdrlen); | 136 | skb_put_data(skb, hdr, hdrlen); |
137 | fraglen = len - hdrlen; | 137 | fraglen = len - hdrlen; |
138 | 138 | ||
139 | if (fraglen) { | 139 | if (fraglen) { |
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c index 966cd7543629..cf48390f6f68 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | |||
@@ -183,9 +183,8 @@ static void iwl_mvm_create_skb(struct sk_buff *skb, struct ieee80211_hdr *hdr, | |||
183 | * present before copying packet data. | 183 | * present before copying packet data. |
184 | */ | 184 | */ |
185 | hdrlen += crypt_len; | 185 | hdrlen += crypt_len; |
186 | memcpy(skb_put(skb, hdrlen), hdr, hdrlen); | 186 | skb_put_data(skb, hdr, hdrlen); |
187 | memcpy(skb_put(skb, headlen - hdrlen), (u8 *)hdr + hdrlen + pad_len, | 187 | skb_put_data(skb, (u8 *)hdr + hdrlen + pad_len, headlen - hdrlen); |
188 | headlen - hdrlen); | ||
189 | 188 | ||
190 | fraglen = len - headlen; | 189 | fraglen = len - headlen; |
191 | 190 | ||
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c index 386950a2d616..01013d273aa7 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c | |||
@@ -2141,8 +2141,7 @@ static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb, | |||
2141 | htons(ETH_P_IPV6), | 2141 | htons(ETH_P_IPV6), |
2142 | data_left); | 2142 | data_left); |
2143 | 2143 | ||
2144 | memcpy(skb_put(csum_skb, tcp_hdrlen(skb)), | 2144 | skb_put_data(csum_skb, tcph, tcp_hdrlen(skb)); |
2145 | tcph, tcp_hdrlen(skb)); | ||
2146 | skb_reset_transport_header(csum_skb); | 2145 | skb_reset_transport_header(csum_skb); |
2147 | csum_skb->csum_start = | 2146 | csum_skb->csum_start = |
2148 | (unsigned char *)tcp_hdr(csum_skb) - | 2147 | (unsigned char *)tcp_hdr(csum_skb) - |
@@ -2176,7 +2175,7 @@ static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb, | |||
2176 | dma_addr_t tb_phys; | 2175 | dma_addr_t tb_phys; |
2177 | 2176 | ||
2178 | if (trans_pcie->sw_csum_tx) | 2177 | if (trans_pcie->sw_csum_tx) |
2179 | memcpy(skb_put(csum_skb, size), tso.data, size); | 2178 | skb_put_data(csum_skb, tso.data, size); |
2180 | 2179 | ||
2181 | tb_phys = dma_map_single(trans->dev, tso.data, | 2180 | tb_phys = dma_map_single(trans->dev, tso.data, |
2182 | size, DMA_TO_DEVICE); | 2181 | size, DMA_TO_DEVICE); |
diff --git a/drivers/net/wireless/intersil/hostap/hostap_80211_tx.c b/drivers/net/wireless/intersil/hostap/hostap_80211_tx.c index 055e11d353ca..c1b10d5117ad 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_80211_tx.c +++ b/drivers/net/wireless/intersil/hostap/hostap_80211_tx.c | |||
@@ -242,7 +242,7 @@ netdev_tx_t hostap_data_start_xmit(struct sk_buff *skb, | |||
242 | memcpy(skb_push(skb, encaps_len), encaps_data, encaps_len); | 242 | memcpy(skb_push(skb, encaps_len), encaps_data, encaps_len); |
243 | memcpy(skb_push(skb, hdr_len), &hdr, hdr_len); | 243 | memcpy(skb_push(skb, hdr_len), &hdr, hdr_len); |
244 | if (use_wds == WDS_OWN_FRAME) { | 244 | if (use_wds == WDS_OWN_FRAME) { |
245 | memcpy(skb_put(skb, ETH_ALEN), &hdr.addr4, ETH_ALEN); | 245 | skb_put_data(skb, &hdr.addr4, ETH_ALEN); |
246 | } | 246 | } |
247 | 247 | ||
248 | iface->stats.tx_packets++; | 248 | iface->stats.tx_packets++; |
diff --git a/drivers/net/wireless/intersil/hostap/hostap_ap.c b/drivers/net/wireless/intersil/hostap/hostap_ap.c index 89b5987303a4..91757defb9be 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_ap.c +++ b/drivers/net/wireless/intersil/hostap/hostap_ap.c | |||
@@ -1000,7 +1000,7 @@ static void prism2_send_mgmt(struct net_device *dev, | |||
1000 | hdrlen = hostap_80211_get_hdrlen(cpu_to_le16(type_subtype)); | 1000 | hdrlen = hostap_80211_get_hdrlen(cpu_to_le16(type_subtype)); |
1001 | hdr = skb_put_zero(skb, hdrlen); | 1001 | hdr = skb_put_zero(skb, hdrlen); |
1002 | if (body) | 1002 | if (body) |
1003 | memcpy(skb_put(skb, body_len), body, body_len); | 1003 | skb_put_data(skb, body, body_len); |
1004 | 1004 | ||
1005 | /* FIX: ctrl::ack sending used special HFA384X_TX_CTRL_802_11 | 1005 | /* FIX: ctrl::ack sending used special HFA384X_TX_CTRL_802_11 |
1006 | * tx_control instead of using local->tx_control */ | 1006 | * tx_control instead of using local->tx_control */ |
diff --git a/drivers/net/wireless/intersil/hostap/hostap_hw.c b/drivers/net/wireless/intersil/hostap/hostap_hw.c index d4f0b730796e..72b46eaf3de2 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_hw.c +++ b/drivers/net/wireless/intersil/hostap/hostap_hw.c | |||
@@ -2005,7 +2005,7 @@ static void prism2_rx(local_info_t *local) | |||
2005 | goto rx_dropped; | 2005 | goto rx_dropped; |
2006 | } | 2006 | } |
2007 | skb->dev = dev; | 2007 | skb->dev = dev; |
2008 | memcpy(skb_put(skb, hdr_len), &rxdesc, hdr_len); | 2008 | skb_put_data(skb, &rxdesc, hdr_len); |
2009 | 2009 | ||
2010 | if (len > 0) | 2010 | if (len > 0) |
2011 | res = hfa384x_from_bap(dev, BAP0, skb_put(skb, len), len); | 2011 | res = hfa384x_from_bap(dev, BAP0, skb_put(skb, len), len); |
@@ -2209,9 +2209,9 @@ static void hostap_tx_callback(local_info_t *local, | |||
2209 | return; | 2209 | return; |
2210 | } | 2210 | } |
2211 | 2211 | ||
2212 | memcpy(skb_put(skb, hdrlen), (void *) &txdesc->frame_control, hdrlen); | 2212 | skb_put_data(skb, (void *)&txdesc->frame_control, hdrlen); |
2213 | if (payload) | 2213 | if (payload) |
2214 | memcpy(skb_put(skb, len), payload, len); | 2214 | skb_put_data(skb, payload, len); |
2215 | 2215 | ||
2216 | skb->dev = local->dev; | 2216 | skb->dev = local->dev; |
2217 | skb_reset_mac_header(skb); | 2217 | skb_reset_mac_header(skb); |
@@ -2362,8 +2362,7 @@ static void prism2_txexc(local_info_t *local) | |||
2362 | struct sk_buff *skb; | 2362 | struct sk_buff *skb; |
2363 | skb = dev_alloc_skb(sizeof(txdesc)); | 2363 | skb = dev_alloc_skb(sizeof(txdesc)); |
2364 | if (skb) { | 2364 | if (skb) { |
2365 | memcpy(skb_put(skb, sizeof(txdesc)), &txdesc, | 2365 | skb_put_data(skb, &txdesc, sizeof(txdesc)); |
2366 | sizeof(txdesc)); | ||
2367 | skb_queue_tail(&local->sta_tx_exc_list, skb); | 2366 | skb_queue_tail(&local->sta_tx_exc_list, skb); |
2368 | tasklet_schedule(&local->sta_tx_exc_tasklet); | 2367 | tasklet_schedule(&local->sta_tx_exc_tasklet); |
2369 | } | 2368 | } |
@@ -2460,7 +2459,7 @@ static void prism2_info(local_info_t *local) | |||
2460 | goto out; | 2459 | goto out; |
2461 | } | 2460 | } |
2462 | 2461 | ||
2463 | memcpy(skb_put(skb, sizeof(info)), &info, sizeof(info)); | 2462 | skb_put_data(skb, &info, sizeof(info)); |
2464 | if (left > 0 && hfa384x_from_bap(dev, BAP0, skb_put(skb, left), left)) | 2463 | if (left > 0 && hfa384x_from_bap(dev, BAP0, skb_put(skb, left), left)) |
2465 | { | 2464 | { |
2466 | spin_unlock(&local->baplock); | 2465 | spin_unlock(&local->baplock); |
diff --git a/drivers/net/wireless/intersil/hostap/hostap_main.c b/drivers/net/wireless/intersil/hostap/hostap_main.c index 400f9b5d620e..a3c066f90afc 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_main.c +++ b/drivers/net/wireless/intersil/hostap/hostap_main.c | |||
@@ -1045,7 +1045,7 @@ int prism2_sta_send_mgmt(local_info_t *local, u8 *dst, u16 stype, | |||
1045 | memcpy(mgmt->sa, dev->dev_addr, ETH_ALEN); | 1045 | memcpy(mgmt->sa, dev->dev_addr, ETH_ALEN); |
1046 | memcpy(mgmt->bssid, dst, ETH_ALEN); | 1046 | memcpy(mgmt->bssid, dst, ETH_ALEN); |
1047 | if (body) | 1047 | if (body) |
1048 | memcpy(skb_put(skb, bodylen), body, bodylen); | 1048 | skb_put_data(skb, body, bodylen); |
1049 | 1049 | ||
1050 | meta = (struct hostap_skb_tx_data *) skb->cb; | 1050 | meta = (struct hostap_skb_tx_data *) skb->cb; |
1051 | memset(meta, 0, sizeof(*meta)); | 1051 | memset(meta, 0, sizeof(*meta)); |
diff --git a/drivers/net/wireless/intersil/orinoco/main.c b/drivers/net/wireless/intersil/orinoco/main.c index d9128bb25e85..f7abc439fb92 100644 --- a/drivers/net/wireless/intersil/orinoco/main.c +++ b/drivers/net/wireless/intersil/orinoco/main.c | |||
@@ -792,7 +792,7 @@ static void orinoco_rx_monitor(struct net_device *dev, u16 rxfid, | |||
792 | } | 792 | } |
793 | 793 | ||
794 | /* Copy the 802.11 header to the skb */ | 794 | /* Copy the 802.11 header to the skb */ |
795 | memcpy(skb_put(skb, hdrlen), &(desc->frame_ctl), hdrlen); | 795 | skb_put_data(skb, &(desc->frame_ctl), hdrlen); |
796 | skb_reset_mac_header(skb); | 796 | skb_reset_mac_header(skb); |
797 | 797 | ||
798 | /* If any, copy the data from the card to the skb */ | 798 | /* If any, copy the data from the card to the skb */ |
diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c index 7ab2f43ab425..e41bf042352e 100644 --- a/drivers/net/wireless/intersil/p54/p54spi.c +++ b/drivers/net/wireless/intersil/p54/p54spi.c | |||
@@ -372,9 +372,9 @@ static int p54spi_rx(struct p54s_priv *priv) | |||
372 | } | 372 | } |
373 | 373 | ||
374 | if (len <= READAHEAD_SZ) { | 374 | if (len <= READAHEAD_SZ) { |
375 | memcpy(skb_put(skb, len), rx_head + 1, len); | 375 | skb_put_data(skb, rx_head + 1, len); |
376 | } else { | 376 | } else { |
377 | memcpy(skb_put(skb, READAHEAD_SZ), rx_head + 1, READAHEAD_SZ); | 377 | skb_put_data(skb, rx_head + 1, READAHEAD_SZ); |
378 | p54spi_spi_read(priv, SPI_ADRS_DMA_DATA, | 378 | p54spi_spi_read(priv, SPI_ADRS_DMA_DATA, |
379 | skb_put(skb, len - READAHEAD_SZ), | 379 | skb_put(skb, len - READAHEAD_SZ), |
380 | len - READAHEAD_SZ); | 380 | len - READAHEAD_SZ); |
diff --git a/drivers/net/wireless/intersil/p54/txrx.c b/drivers/net/wireless/intersil/p54/txrx.c index 60f9b678ef74..b00c07d72f95 100644 --- a/drivers/net/wireless/intersil/p54/txrx.c +++ b/drivers/net/wireless/intersil/p54/txrx.c | |||
@@ -905,8 +905,9 @@ void p54_tx_80211(struct ieee80211_hw *dev, | |||
905 | if (info->control.hw_key->cipher == WLAN_CIPHER_SUITE_TKIP) { | 905 | if (info->control.hw_key->cipher == WLAN_CIPHER_SUITE_TKIP) { |
906 | /* reserve space for the MIC key */ | 906 | /* reserve space for the MIC key */ |
907 | len += 8; | 907 | len += 8; |
908 | memcpy(skb_put(skb, 8), &(info->control.hw_key->key | 908 | skb_put_data(skb, |
909 | [NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY]), 8); | 909 | &(info->control.hw_key->key[NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY]), |
910 | 8); | ||
910 | } | 911 | } |
911 | /* reserve some space for ICV */ | 912 | /* reserve some space for ICV */ |
912 | len += info->control.hw_key->icv_len; | 913 | len += info->control.hw_key->icv_len; |
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index c854a557998b..1d6e180052b8 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c | |||
@@ -2020,8 +2020,7 @@ static void hw_scan_work(struct work_struct *work) | |||
2020 | memcpy(mgmt->bssid, req->bssid, ETH_ALEN); | 2020 | memcpy(mgmt->bssid, req->bssid, ETH_ALEN); |
2021 | 2021 | ||
2022 | if (req->ie_len) | 2022 | if (req->ie_len) |
2023 | memcpy(skb_put(probe, req->ie_len), req->ie, | 2023 | skb_put_data(probe, req->ie, req->ie_len); |
2024 | req->ie_len); | ||
2025 | 2024 | ||
2026 | local_bh_disable(); | 2025 | local_bh_disable(); |
2027 | mac80211_hwsim_tx_frame(hwsim->hw, probe, | 2026 | mac80211_hwsim_tx_frame(hwsim->hw, probe, |
@@ -3021,7 +3020,7 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2, | |||
3021 | goto err; | 3020 | goto err; |
3022 | 3021 | ||
3023 | /* Copy the data */ | 3022 | /* Copy the data */ |
3024 | memcpy(skb_put(skb, frame_data_len), frame_data, frame_data_len); | 3023 | skb_put_data(skb, frame_data, frame_data_len); |
3025 | 3024 | ||
3026 | data2 = get_hwsim_data_ref_from_addr(dst); | 3025 | data2 = get_hwsim_data_ref_from_addr(dst); |
3027 | if (!data2) | 3026 | if (!data2) |
diff --git a/drivers/net/wireless/marvell/libertas/if_sdio.c b/drivers/net/wireless/marvell/libertas/if_sdio.c index e0196208ab0d..a9e2b06b3175 100644 --- a/drivers/net/wireless/marvell/libertas/if_sdio.c +++ b/drivers/net/wireless/marvell/libertas/if_sdio.c | |||
@@ -256,9 +256,7 @@ static int if_sdio_handle_data(struct if_sdio_card *card, | |||
256 | 256 | ||
257 | skb_reserve(skb, NET_IP_ALIGN); | 257 | skb_reserve(skb, NET_IP_ALIGN); |
258 | 258 | ||
259 | data = skb_put(skb, size); | 259 | data = skb_put_data(skb, buffer, size); |
260 | |||
261 | memcpy(data, buffer, size); | ||
262 | 260 | ||
263 | lbs_process_rxed_packet(card->priv, skb); | 261 | lbs_process_rxed_packet(card->priv, skb); |
264 | 262 | ||
diff --git a/drivers/net/wireless/marvell/mwifiex/11n_aggr.c b/drivers/net/wireless/marvell/mwifiex/11n_aggr.c index 53e67526f40d..bc12c37e7501 100644 --- a/drivers/net/wireless/marvell/mwifiex/11n_aggr.c +++ b/drivers/net/wireless/marvell/mwifiex/11n_aggr.c | |||
@@ -81,7 +81,7 @@ mwifiex_11n_form_amsdu_pkt(struct sk_buff *skb_aggr, | |||
81 | tx_header->eth803_hdr.h_proto = htons(skb_src->len + LLC_SNAP_LEN); | 81 | tx_header->eth803_hdr.h_proto = htons(skb_src->len + LLC_SNAP_LEN); |
82 | 82 | ||
83 | /* Add payload */ | 83 | /* Add payload */ |
84 | memcpy(skb_put(skb_aggr, skb_src->len), skb_src->data, skb_src->len); | 84 | skb_put_data(skb_aggr, skb_src->data, skb_src->len); |
85 | 85 | ||
86 | /* Add padding for new MSDU to start from 4 byte boundary */ | 86 | /* Add padding for new MSDU to start from 4 byte boundary */ |
87 | *pad = (4 - ((unsigned long)skb_aggr->tail & 0x3)) % 4; | 87 | *pad = (4 - ((unsigned long)skb_aggr->tail & 0x3)) % 4; |
diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c index 025bc06a19d6..c20e4944ef87 100644 --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c | |||
@@ -176,12 +176,10 @@ mwifiex_form_mgmt_frame(struct sk_buff *skb, const u8 *buf, size_t len) | |||
176 | memcpy(skb_push(skb, sizeof(pkt_type)), &pkt_type, sizeof(pkt_type)); | 176 | memcpy(skb_push(skb, sizeof(pkt_type)), &pkt_type, sizeof(pkt_type)); |
177 | 177 | ||
178 | /* Add packet data and address4 */ | 178 | /* Add packet data and address4 */ |
179 | memcpy(skb_put(skb, sizeof(struct ieee80211_hdr_3addr)), buf, | 179 | skb_put_data(skb, buf, sizeof(struct ieee80211_hdr_3addr)); |
180 | sizeof(struct ieee80211_hdr_3addr)); | 180 | skb_put_data(skb, addr, ETH_ALEN); |
181 | memcpy(skb_put(skb, ETH_ALEN), addr, ETH_ALEN); | 181 | skb_put_data(skb, buf + sizeof(struct ieee80211_hdr_3addr), |
182 | memcpy(skb_put(skb, len - sizeof(struct ieee80211_hdr_3addr)), | 182 | len - sizeof(struct ieee80211_hdr_3addr)); |
183 | buf + sizeof(struct ieee80211_hdr_3addr), | ||
184 | len - sizeof(struct ieee80211_hdr_3addr)); | ||
185 | 183 | ||
186 | skb->priority = LOW_PRIO_TID; | 184 | skb->priority = LOW_PRIO_TID; |
187 | __net_timestamp(skb); | 185 | __net_timestamp(skb); |
diff --git a/drivers/net/wireless/marvell/mwifiex/tdls.c b/drivers/net/wireless/marvell/mwifiex/tdls.c index c76b7315af55..d38555fe4284 100644 --- a/drivers/net/wireless/marvell/mwifiex/tdls.c +++ b/drivers/net/wireless/marvell/mwifiex/tdls.c | |||
@@ -679,8 +679,7 @@ int mwifiex_send_tdls_data_frame(struct mwifiex_private *priv, const u8 *peer, | |||
679 | return ret; | 679 | return ret; |
680 | } | 680 | } |
681 | if (extra_ies_len) | 681 | if (extra_ies_len) |
682 | memcpy(skb_put(skb, extra_ies_len), extra_ies, | 682 | skb_put_data(skb, extra_ies, extra_ies_len); |
683 | extra_ies_len); | ||
684 | mwifiex_tdls_add_link_ie(skb, priv->curr_addr, peer, | 683 | mwifiex_tdls_add_link_ie(skb, priv->curr_addr, peer, |
685 | priv->cfg_bssid); | 684 | priv->cfg_bssid); |
686 | break; | 685 | break; |
@@ -693,8 +692,7 @@ int mwifiex_send_tdls_data_frame(struct mwifiex_private *priv, const u8 *peer, | |||
693 | return ret; | 692 | return ret; |
694 | } | 693 | } |
695 | if (extra_ies_len) | 694 | if (extra_ies_len) |
696 | memcpy(skb_put(skb, extra_ies_len), extra_ies, | 695 | skb_put_data(skb, extra_ies, extra_ies_len); |
697 | extra_ies_len); | ||
698 | mwifiex_tdls_add_link_ie(skb, peer, priv->curr_addr, | 696 | mwifiex_tdls_add_link_ie(skb, peer, priv->curr_addr, |
699 | priv->cfg_bssid); | 697 | priv->cfg_bssid); |
700 | break; | 698 | break; |
@@ -865,7 +863,7 @@ int mwifiex_send_tdls_action_frame(struct mwifiex_private *priv, const u8 *peer, | |||
865 | } | 863 | } |
866 | 864 | ||
867 | if (extra_ies_len) | 865 | if (extra_ies_len) |
868 | memcpy(skb_put(skb, extra_ies_len), extra_ies, extra_ies_len); | 866 | skb_put_data(skb, extra_ies, extra_ies_len); |
869 | 867 | ||
870 | /* the TDLS link IE is always added last we are the responder */ | 868 | /* the TDLS link IE is always added last we are the responder */ |
871 | 869 | ||
diff --git a/drivers/net/wireless/mediatek/mt7601u/dma.c b/drivers/net/wireless/mediatek/mt7601u/dma.c index a8bc064bc14f..660267b359e4 100644 --- a/drivers/net/wireless/mediatek/mt7601u/dma.c +++ b/drivers/net/wireless/mediatek/mt7601u/dma.c | |||
@@ -52,7 +52,7 @@ mt7601u_rx_skb_from_seg(struct mt7601u_dev *dev, struct mt7601u_rxwi *rxwi, | |||
52 | goto bad_frame; | 52 | goto bad_frame; |
53 | 53 | ||
54 | if (rxwi->rxinfo & cpu_to_le32(MT_RXINFO_L2PAD)) { | 54 | if (rxwi->rxinfo & cpu_to_le32(MT_RXINFO_L2PAD)) { |
55 | memcpy(skb_put(skb, hdr_len), data, hdr_len); | 55 | skb_put_data(skb, data, hdr_len); |
56 | 56 | ||
57 | data += hdr_len + 2; | 57 | data += hdr_len + 2; |
58 | true_len -= hdr_len; | 58 | true_len -= hdr_len; |
@@ -63,7 +63,7 @@ mt7601u_rx_skb_from_seg(struct mt7601u_dev *dev, struct mt7601u_rxwi *rxwi, | |||
63 | copy = (true_len <= skb_tailroom(skb)) ? true_len : hdr_len + 8; | 63 | copy = (true_len <= skb_tailroom(skb)) ? true_len : hdr_len + 8; |
64 | frag = true_len - copy; | 64 | frag = true_len - copy; |
65 | 65 | ||
66 | memcpy(skb_put(skb, copy), data, copy); | 66 | skb_put_data(skb, data, copy); |
67 | data += copy; | 67 | data += copy; |
68 | 68 | ||
69 | if (frag) { | 69 | if (frag) { |
diff --git a/drivers/net/wireless/mediatek/mt7601u/mcu.c b/drivers/net/wireless/mediatek/mt7601u/mcu.c index a9f5f398b2f8..65a8004418ea 100644 --- a/drivers/net/wireless/mediatek/mt7601u/mcu.c +++ b/drivers/net/wireless/mediatek/mt7601u/mcu.c | |||
@@ -68,7 +68,7 @@ mt7601u_mcu_msg_alloc(struct mt7601u_dev *dev, const void *data, int len) | |||
68 | skb = alloc_skb(len + MT_DMA_HDR_LEN + 4, GFP_KERNEL); | 68 | skb = alloc_skb(len + MT_DMA_HDR_LEN + 4, GFP_KERNEL); |
69 | if (skb) { | 69 | if (skb) { |
70 | skb_reserve(skb, MT_DMA_HDR_LEN); | 70 | skb_reserve(skb, MT_DMA_HDR_LEN); |
71 | memcpy(skb_put(skb, len), data, len); | 71 | skb_put_data(skb, data, len); |
72 | } | 72 | } |
73 | 73 | ||
74 | return skb; | 74 | return skb; |
diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c index 4814d90c8040..f93b27f3a236 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c +++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c | |||
@@ -213,7 +213,7 @@ static void qtnf_pcie_control_rx_callback(void *arg, const u8 *buf, size_t len) | |||
213 | return; | 213 | return; |
214 | } | 214 | } |
215 | 215 | ||
216 | memcpy(skb_put(skb, len), buf, len); | 216 | skb_put_data(skb, buf, len); |
217 | 217 | ||
218 | qtnf_trans_handle_rx_ctl_packet(bus, skb); | 218 | qtnf_trans_handle_rx_ctl_packet(bus, skb); |
219 | } | 219 | } |
diff --git a/drivers/net/wireless/quantenna/qtnfmac/qlink_util.h b/drivers/net/wireless/quantenna/qtnfmac/qlink_util.h index d8de484b5995..9844ff0add2b 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/qlink_util.h +++ b/drivers/net/wireless/quantenna/qtnfmac/qlink_util.h | |||
@@ -35,8 +35,7 @@ qtnf_cmd_skb_put_buffer(struct sk_buff *skb, const u8 *buf_src, size_t len) | |||
35 | { | 35 | { |
36 | u8 *buf_dst; | 36 | u8 *buf_dst; |
37 | 37 | ||
38 | buf_dst = skb_put(skb, len); | 38 | buf_dst = skb_put_data(skb, buf_src, len); |
39 | memcpy(buf_dst, buf_src, len); | ||
40 | } | 39 | } |
41 | 40 | ||
42 | static inline void qtnf_cmd_skb_put_tlv_arr(struct sk_buff *skb, | 41 | static inline void qtnf_cmd_skb_put_tlv_arr(struct sk_buff *skb, |
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c index 4a1bca1b1e26..b70985e126bf 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c | |||
@@ -203,9 +203,8 @@ void rt2x00debug_dump_frame(struct rt2x00_dev *rt2x00dev, | |||
203 | dump_hdr->timestamp_usec = cpu_to_le32(timestamp.tv_usec); | 203 | dump_hdr->timestamp_usec = cpu_to_le32(timestamp.tv_usec); |
204 | 204 | ||
205 | if (!(skbdesc->flags & SKBDESC_DESC_IN_SKB)) | 205 | if (!(skbdesc->flags & SKBDESC_DESC_IN_SKB)) |
206 | memcpy(skb_put(skbcopy, skbdesc->desc_len), skbdesc->desc, | 206 | skb_put_data(skbcopy, skbdesc->desc, skbdesc->desc_len); |
207 | skbdesc->desc_len); | 207 | skb_put_data(skbcopy, skb->data, skb->len); |
208 | memcpy(skb_put(skbcopy, skb->len), skb->data, skb->len); | ||
209 | 208 | ||
210 | skb_queue_tail(&intf->frame_dump_skbqueue, skbcopy); | 209 | skb_queue_tail(&intf->frame_dump_skbqueue, skbcopy); |
211 | wake_up_interruptible(&intf->frame_dump_waitqueue); | 210 | wake_up_interruptible(&intf->frame_dump_waitqueue); |
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c index 2e6b888bd417..0c1f8307e179 100644 --- a/drivers/net/wireless/realtek/rtlwifi/pci.c +++ b/drivers/net/wireless/realtek/rtlwifi/pci.c | |||
@@ -735,8 +735,7 @@ static void _rtl_pci_rx_to_mac80211(struct ieee80211_hw *hw, | |||
735 | if (likely(uskb)) { | 735 | if (likely(uskb)) { |
736 | memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, | 736 | memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, |
737 | sizeof(rx_status)); | 737 | sizeof(rx_status)); |
738 | pdata = (u8 *)skb_put(uskb, skb->len); | 738 | pdata = skb_put_data(uskb, skb->data, skb->len); |
739 | memcpy(pdata, skb->data, skb->len); | ||
740 | dev_kfree_skb_any(skb); | 739 | dev_kfree_skb_any(skb); |
741 | ieee80211_rx_irqsafe(hw, uskb); | 740 | ieee80211_rx_irqsafe(hw, uskb); |
742 | } else { | 741 | } else { |
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c index 21ed9ad3be7a..a2eca669873b 100644 --- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c | |||
@@ -620,8 +620,7 @@ void rtl88e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished) | |||
620 | u1rsvdpageloc, 3); | 620 | u1rsvdpageloc, 3); |
621 | 621 | ||
622 | skb = dev_alloc_skb(totalpacketlen); | 622 | skb = dev_alloc_skb(totalpacketlen); |
623 | memcpy(skb_put(skb, totalpacketlen), | 623 | skb_put_data(skb, &reserved_page_packet, totalpacketlen); |
624 | &reserved_page_packet, totalpacketlen); | ||
625 | 624 | ||
626 | rtstatus = rtl_cmd_send_packet(hw, skb); | 625 | rtstatus = rtl_cmd_send_packet(hw, skb); |
627 | 626 | ||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c index 89a0a28b8b20..dd3ba4810e7d 100644 --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c | |||
@@ -188,10 +188,9 @@ static bool _rtl92s_firmware_downloadcode(struct ieee80211_hw *hw, | |||
188 | if (!skb) | 188 | if (!skb) |
189 | return false; | 189 | return false; |
190 | skb_reserve(skb, extra_descoffset); | 190 | skb_reserve(skb, extra_descoffset); |
191 | seg_ptr = (u8 *)skb_put(skb, (u32)(frag_length - | 191 | seg_ptr = skb_put_data(skb, |
192 | extra_descoffset)); | 192 | code_virtual_address + frag_offset, |
193 | memcpy(seg_ptr, code_virtual_address + frag_offset, | 193 | (u32)(frag_length - extra_descoffset)); |
194 | (u32)(frag_length - extra_descoffset)); | ||
195 | 194 | ||
196 | tcb_desc = (struct rtl_tcb_desc *)(skb->cb); | 195 | tcb_desc = (struct rtl_tcb_desc *)(skb->cb); |
197 | tcb_desc->queue_index = TXCMD_QUEUE; | 196 | tcb_desc->queue_index = TXCMD_QUEUE; |
diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.c b/drivers/net/wireless/realtek/rtlwifi/usb.c index 4d989b8ab185..5590d07d0918 100644 --- a/drivers/net/wireless/realtek/rtlwifi/usb.c +++ b/drivers/net/wireless/realtek/rtlwifi/usb.c | |||
@@ -653,7 +653,7 @@ static void _rtl_rx_completed(struct urb *_urb) | |||
653 | /* reserve some space for mac80211's radiotap */ | 653 | /* reserve some space for mac80211's radiotap */ |
654 | skb_reserve(skb, __RADIO_TAP_SIZE_RSV); | 654 | skb_reserve(skb, __RADIO_TAP_SIZE_RSV); |
655 | 655 | ||
656 | memcpy(skb_put(skb, size), _urb->transfer_buffer, size); | 656 | skb_put_data(skb, _urb->transfer_buffer, size); |
657 | 657 | ||
658 | skb_queue_tail(&rtlusb->rx_queue, skb); | 658 | skb_queue_tail(&rtlusb->rx_queue, skb); |
659 | tasklet_schedule(&rtlusb->rx_work_tasklet); | 659 | tasklet_schedule(&rtlusb->rx_work_tasklet); |
diff --git a/drivers/net/wireless/rsi/rsi_91x_mgmt.c b/drivers/net/wireless/rsi/rsi_91x_mgmt.c index fac87c06357b..4433cec4367c 100644 --- a/drivers/net/wireless/rsi/rsi_91x_mgmt.c +++ b/drivers/net/wireless/rsi/rsi_91x_mgmt.c | |||
@@ -412,11 +412,9 @@ static int rsi_mgmt_pkt_to_core(struct rsi_common *common, | |||
412 | return -ENOMEM; | 412 | return -ENOMEM; |
413 | } | 413 | } |
414 | 414 | ||
415 | buffer = skb_put(skb, msg_len); | 415 | buffer = skb_put_data(skb, |
416 | 416 | (u8 *)(msg + FRAME_DESC_SZ + pad_bytes), | |
417 | memcpy(buffer, | 417 | msg_len); |
418 | (u8 *)(msg + FRAME_DESC_SZ + pad_bytes), | ||
419 | msg_len); | ||
420 | 418 | ||
421 | pkt_recv = buffer[0]; | 419 | pkt_recv = buffer[0]; |
422 | 420 | ||
diff --git a/drivers/net/wireless/st/cw1200/scan.c b/drivers/net/wireless/st/cw1200/scan.c index 0a0ff7e31f5b..cc2ce60f4f09 100644 --- a/drivers/net/wireless/st/cw1200/scan.c +++ b/drivers/net/wireless/st/cw1200/scan.c | |||
@@ -84,7 +84,7 @@ int cw1200_hw_scan(struct ieee80211_hw *hw, | |||
84 | return -ENOMEM; | 84 | return -ENOMEM; |
85 | 85 | ||
86 | if (req->ie_len) | 86 | if (req->ie_len) |
87 | memcpy(skb_put(frame.skb, req->ie_len), req->ie, req->ie_len); | 87 | skb_put_data(frame.skb, req->ie, req->ie_len); |
88 | 88 | ||
89 | /* will be unlocked in cw1200_scan_work() */ | 89 | /* will be unlocked in cw1200_scan_work() */ |
90 | down(&priv->scan.lock); | 90 | down(&priv->scan.lock); |
diff --git a/drivers/net/wireless/ti/wl1251/main.c b/drivers/net/wireless/ti/wl1251/main.c index bbf7604889b7..08f0477f78d9 100644 --- a/drivers/net/wireless/ti/wl1251/main.c +++ b/drivers/net/wireless/ti/wl1251/main.c | |||
@@ -1036,7 +1036,7 @@ static int wl1251_op_hw_scan(struct ieee80211_hw *hw, | |||
1036 | goto out_idle; | 1036 | goto out_idle; |
1037 | } | 1037 | } |
1038 | if (req->ie_len) | 1038 | if (req->ie_len) |
1039 | memcpy(skb_put(skb, req->ie_len), req->ie, req->ie_len); | 1039 | skb_put_data(skb, req->ie, req->ie_len); |
1040 | 1040 | ||
1041 | ret = wl1251_cmd_template_set(wl, CMD_PROBE_REQ, skb->data, | 1041 | ret = wl1251_cmd_template_set(wl, CMD_PROBE_REQ, skb->data, |
1042 | skb->len); | 1042 | skb->len); |
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c index 4a39fb13c478..229f4d01f239 100644 --- a/drivers/net/wireless/ti/wlcore/cmd.c +++ b/drivers/net/wireless/ti/wlcore/cmd.c | |||
@@ -1156,9 +1156,9 @@ int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
1156 | goto out; | 1156 | goto out; |
1157 | } | 1157 | } |
1158 | if (ie0_len) | 1158 | if (ie0_len) |
1159 | memcpy(skb_put(skb, ie0_len), ie0, ie0_len); | 1159 | skb_put_data(skb, ie0, ie0_len); |
1160 | if (ie1_len) | 1160 | if (ie1_len) |
1161 | memcpy(skb_put(skb, ie1_len), ie1, ie1_len); | 1161 | skb_put_data(skb, ie1, ie1_len); |
1162 | 1162 | ||
1163 | if (sched_scan && | 1163 | if (sched_scan && |
1164 | (wl->quirks & WLCORE_QUIRK_DUAL_PROBE_TMPL)) { | 1164 | (wl->quirks & WLCORE_QUIRK_DUAL_PROBE_TMPL)) { |
diff --git a/drivers/net/wireless/ti/wlcore/rx.c b/drivers/net/wireless/ti/wlcore/rx.c index 52a55f9acd80..53cd6d4d5b50 100644 --- a/drivers/net/wireless/ti/wlcore/rx.c +++ b/drivers/net/wireless/ti/wlcore/rx.c | |||
@@ -174,15 +174,13 @@ static int wl1271_rx_handle_data(struct wl1271 *wl, u8 *data, u32 length, | |||
174 | /* reserve the unaligned payload(if any) */ | 174 | /* reserve the unaligned payload(if any) */ |
175 | skb_reserve(skb, reserved); | 175 | skb_reserve(skb, reserved); |
176 | 176 | ||
177 | buf = skb_put(skb, pkt_data_len); | ||
178 | |||
179 | /* | 177 | /* |
180 | * Copy packets from aggregation buffer to the skbs without rx | 178 | * Copy packets from aggregation buffer to the skbs without rx |
181 | * descriptor and with packet payload aligned care. In case of unaligned | 179 | * descriptor and with packet payload aligned care. In case of unaligned |
182 | * packets copy the packets in offset of 2 bytes guarantee IP header | 180 | * packets copy the packets in offset of 2 bytes guarantee IP header |
183 | * payload aligned to 4 bytes. | 181 | * payload aligned to 4 bytes. |
184 | */ | 182 | */ |
185 | memcpy(buf, data + sizeof(*desc), pkt_data_len); | 183 | buf = skb_put_data(skb, data + sizeof(*desc), pkt_data_len); |
186 | if (rx_align == WLCORE_RX_BUF_PADDED) | 184 | if (rx_align == WLCORE_RX_BUF_PADDED) |
187 | skb_pull(skb, RX_BUF_ALIGN); | 185 | skb_pull(skb, RX_BUF_ALIGN); |
188 | 186 | ||
diff --git a/drivers/net/wireless/zydas/zd1201.c b/drivers/net/wireless/zydas/zd1201.c index de7ff395977a..7f586d76cf17 100644 --- a/drivers/net/wireless/zydas/zd1201.c +++ b/drivers/net/wireless/zydas/zd1201.c | |||
@@ -326,13 +326,13 @@ static void zd1201_usbrx(struct urb *urb) | |||
326 | if (!(skb = dev_alloc_skb(datalen+24))) | 326 | if (!(skb = dev_alloc_skb(datalen+24))) |
327 | goto resubmit; | 327 | goto resubmit; |
328 | 328 | ||
329 | memcpy(skb_put(skb, 2), &data[datalen-16], 2); | 329 | skb_put_data(skb, &data[datalen - 16], 2); |
330 | memcpy(skb_put(skb, 2), &data[datalen-2], 2); | 330 | skb_put_data(skb, &data[datalen - 2], 2); |
331 | memcpy(skb_put(skb, 6), &data[datalen-14], 6); | 331 | skb_put_data(skb, &data[datalen - 14], 6); |
332 | memcpy(skb_put(skb, 6), &data[datalen-22], 6); | 332 | skb_put_data(skb, &data[datalen - 22], 6); |
333 | memcpy(skb_put(skb, 6), &data[datalen-8], 6); | 333 | skb_put_data(skb, &data[datalen - 8], 6); |
334 | memcpy(skb_put(skb, 2), &data[datalen-24], 2); | 334 | skb_put_data(skb, &data[datalen - 24], 2); |
335 | memcpy(skb_put(skb, len), data, len); | 335 | skb_put_data(skb, data, len); |
336 | skb->protocol = eth_type_trans(skb, zd->dev); | 336 | skb->protocol = eth_type_trans(skb, zd->dev); |
337 | zd->dev->stats.rx_packets++; | 337 | zd->dev->stats.rx_packets++; |
338 | zd->dev->stats.rx_bytes += skb->len; | 338 | zd->dev->stats.rx_bytes += skb->len; |
@@ -359,9 +359,9 @@ static void zd1201_usbrx(struct urb *urb) | |||
359 | frag->skb = skb; | 359 | frag->skb = skb; |
360 | frag->seq = seq & IEEE80211_SCTL_SEQ; | 360 | frag->seq = seq & IEEE80211_SCTL_SEQ; |
361 | skb_reserve(skb, 2); | 361 | skb_reserve(skb, 2); |
362 | memcpy(skb_put(skb, 12), &data[datalen-14], 12); | 362 | skb_put_data(skb, &data[datalen - 14], 12); |
363 | memcpy(skb_put(skb, 2), &data[6], 2); | 363 | skb_put_data(skb, &data[6], 2); |
364 | memcpy(skb_put(skb, len), data+8, len); | 364 | skb_put_data(skb, data + 8, len); |
365 | hlist_add_head(&frag->fnode, &zd->fraglist); | 365 | hlist_add_head(&frag->fnode, &zd->fraglist); |
366 | goto resubmit; | 366 | goto resubmit; |
367 | } | 367 | } |
@@ -385,9 +385,9 @@ static void zd1201_usbrx(struct urb *urb) | |||
385 | if (!skb) | 385 | if (!skb) |
386 | goto resubmit; | 386 | goto resubmit; |
387 | skb_reserve(skb, 2); | 387 | skb_reserve(skb, 2); |
388 | memcpy(skb_put(skb, 12), &data[datalen-14], 12); | 388 | skb_put_data(skb, &data[datalen - 14], 12); |
389 | memcpy(skb_put(skb, 2), &data[6], 2); | 389 | skb_put_data(skb, &data[6], 2); |
390 | memcpy(skb_put(skb, len), data+8, len); | 390 | skb_put_data(skb, data + 8, len); |
391 | } | 391 | } |
392 | skb->protocol = eth_type_trans(skb, zd->dev); | 392 | skb->protocol = eth_type_trans(skb, zd->dev); |
393 | zd->dev->stats.rx_packets++; | 393 | zd->dev->stats.rx_packets++; |
diff --git a/drivers/net/wireless/zydas/zd1211rw/zd_mac.c b/drivers/net/wireless/zydas/zd1211rw/zd_mac.c index fe6517a621b0..2d929d2edb00 100644 --- a/drivers/net/wireless/zydas/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zydas/zd1211rw/zd_mac.c | |||
@@ -1103,7 +1103,7 @@ int zd_mac_rx(struct ieee80211_hw *hw, const u8 *buffer, unsigned int length) | |||
1103 | } | 1103 | } |
1104 | 1104 | ||
1105 | /* FIXME : could we avoid this big memcpy ? */ | 1105 | /* FIXME : could we avoid this big memcpy ? */ |
1106 | memcpy(skb_put(skb, length), buffer, length); | 1106 | skb_put_data(skb, buffer, length); |
1107 | 1107 | ||
1108 | memcpy(IEEE80211_SKB_RXCB(skb), &stats, sizeof(stats)); | 1108 | memcpy(IEEE80211_SKB_RXCB(skb), &stats, sizeof(stats)); |
1109 | ieee80211_rx_irqsafe(hw, skb); | 1109 | ieee80211_rx_irqsafe(hw, skb); |
diff --git a/drivers/nfc/fdp/fdp.c b/drivers/nfc/fdp/fdp.c index 7c1eaea3b685..badd8167ac73 100644 --- a/drivers/nfc/fdp/fdp.c +++ b/drivers/nfc/fdp/fdp.c | |||
@@ -228,8 +228,7 @@ static int fdp_nci_send_patch(struct nci_dev *ndev, u8 conn_id, u8 type) | |||
228 | 228 | ||
229 | skb_reserve(skb, NCI_CTRL_HDR_SIZE); | 229 | skb_reserve(skb, NCI_CTRL_HDR_SIZE); |
230 | 230 | ||
231 | memcpy(skb_put(skb, payload_size), fw->data + (fw->size - len), | 231 | skb_put_data(skb, fw->data + (fw->size - len), payload_size); |
232 | payload_size); | ||
233 | 232 | ||
234 | rc = nci_send_data(ndev, conn_id, skb); | 233 | rc = nci_send_data(ndev, conn_id, skb); |
235 | 234 | ||
diff --git a/drivers/nfc/fdp/i2c.c b/drivers/nfc/fdp/i2c.c index 712936f5d2d6..0877e2283f35 100644 --- a/drivers/nfc/fdp/i2c.c +++ b/drivers/nfc/fdp/i2c.c | |||
@@ -186,7 +186,7 @@ static int fdp_nci_i2c_read(struct fdp_i2c_phy *phy, struct sk_buff **skb) | |||
186 | goto flush; | 186 | goto flush; |
187 | } | 187 | } |
188 | 188 | ||
189 | memcpy(skb_put(*skb, len), tmp, len); | 189 | skb_put_data(*skb, tmp, len); |
190 | fdp_nci_i2c_dump_skb(&client->dev, "fdp_rd", *skb); | 190 | fdp_nci_i2c_dump_skb(&client->dev, "fdp_rd", *skb); |
191 | 191 | ||
192 | fdp_nci_i2c_remove_len_lrc(*skb); | 192 | fdp_nci_i2c_remove_len_lrc(*skb); |
diff --git a/drivers/nfc/nfcmrvl/fw_dnld.c b/drivers/nfc/nfcmrvl/fw_dnld.c index c38bdd6a5a82..7c710458568e 100644 --- a/drivers/nfc/nfcmrvl/fw_dnld.c +++ b/drivers/nfc/nfcmrvl/fw_dnld.c | |||
@@ -324,10 +324,9 @@ static int process_state_fw_dnld(struct nfcmrvl_private *priv, | |||
324 | out_skb = alloc_lc_skb(priv, priv->fw_dnld.chunk_len); | 324 | out_skb = alloc_lc_skb(priv, priv->fw_dnld.chunk_len); |
325 | if (!out_skb) | 325 | if (!out_skb) |
326 | return -ENOMEM; | 326 | return -ENOMEM; |
327 | memcpy(skb_put(out_skb, priv->fw_dnld.chunk_len), | 327 | skb_put_data(out_skb, |
328 | ((uint8_t *)priv->fw_dnld.fw->data) + | 328 | ((uint8_t *)priv->fw_dnld.fw->data) + priv->fw_dnld.offset, |
329 | priv->fw_dnld.offset, | 329 | priv->fw_dnld.chunk_len); |
330 | priv->fw_dnld.chunk_len); | ||
331 | nci_send_frame(priv->ndev, out_skb); | 330 | nci_send_frame(priv->ndev, out_skb); |
332 | priv->fw_dnld.substate = SUBSTATE_WAIT_DATA_CREDIT; | 331 | priv->fw_dnld.substate = SUBSTATE_WAIT_DATA_CREDIT; |
333 | } | 332 | } |
diff --git a/drivers/nfc/nfcmrvl/i2c.c b/drivers/nfc/nfcmrvl/i2c.c index 78b7aa835c81..ffec103702f1 100644 --- a/drivers/nfc/nfcmrvl/i2c.c +++ b/drivers/nfc/nfcmrvl/i2c.c | |||
@@ -60,7 +60,7 @@ static int nfcmrvl_i2c_read(struct nfcmrvl_i2c_drv_data *drv_data, | |||
60 | return -ENOMEM; | 60 | return -ENOMEM; |
61 | 61 | ||
62 | /* Copy NCI header into the SKB */ | 62 | /* Copy NCI header into the SKB */ |
63 | memcpy(skb_put(*skb, NCI_CTRL_HDR_SIZE), &nci_hdr, NCI_CTRL_HDR_SIZE); | 63 | skb_put_data(*skb, &nci_hdr, NCI_CTRL_HDR_SIZE); |
64 | 64 | ||
65 | if (nci_hdr.plen) { | 65 | if (nci_hdr.plen) { |
66 | /* Read the NCI payload */ | 66 | /* Read the NCI payload */ |
diff --git a/drivers/nfc/nfcmrvl/usb.c b/drivers/nfc/nfcmrvl/usb.c index 585a0f20835b..699aa9d16575 100644 --- a/drivers/nfc/nfcmrvl/usb.c +++ b/drivers/nfc/nfcmrvl/usb.c | |||
@@ -83,8 +83,8 @@ static void nfcmrvl_bulk_complete(struct urb *urb) | |||
83 | if (!skb) { | 83 | if (!skb) { |
84 | nfc_err(&drv_data->udev->dev, "failed to alloc mem\n"); | 84 | nfc_err(&drv_data->udev->dev, "failed to alloc mem\n"); |
85 | } else { | 85 | } else { |
86 | memcpy(skb_put(skb, urb->actual_length), | 86 | skb_put_data(skb, urb->transfer_buffer, |
87 | urb->transfer_buffer, urb->actual_length); | 87 | urb->actual_length); |
88 | if (nfcmrvl_nci_recv_frame(drv_data->priv, skb) < 0) | 88 | if (nfcmrvl_nci_recv_frame(drv_data->priv, skb) < 0) |
89 | nfc_err(&drv_data->udev->dev, | 89 | nfc_err(&drv_data->udev->dev, |
90 | "corrupted Rx packet\n"); | 90 | "corrupted Rx packet\n"); |
diff --git a/drivers/nfc/nxp-nci/firmware.c b/drivers/nfc/nxp-nci/firmware.c index 553011f58339..99ffee1dfd1e 100644 --- a/drivers/nfc/nxp-nci/firmware.c +++ b/drivers/nfc/nxp-nci/firmware.c | |||
@@ -124,8 +124,7 @@ static int nxp_nci_fw_send_chunk(struct nxp_nci_info *info) | |||
124 | header |= chunk_len & NXP_NCI_FW_FRAME_LEN_MASK; | 124 | header |= chunk_len & NXP_NCI_FW_FRAME_LEN_MASK; |
125 | put_unaligned_be16(header, skb_put(skb, NXP_NCI_FW_HDR_LEN)); | 125 | put_unaligned_be16(header, skb_put(skb, NXP_NCI_FW_HDR_LEN)); |
126 | 126 | ||
127 | memcpy(skb_put(skb, chunk_len), fw_info->data + fw_info->written, | 127 | skb_put_data(skb, fw_info->data + fw_info->written, chunk_len); |
128 | chunk_len); | ||
129 | 128 | ||
130 | crc = nxp_nci_fw_crc(skb->data, chunk_len + NXP_NCI_FW_HDR_LEN); | 129 | crc = nxp_nci_fw_crc(skb->data, chunk_len + NXP_NCI_FW_HDR_LEN); |
131 | put_unaligned_be16(crc, skb_put(skb, NXP_NCI_FW_CRC_LEN)); | 130 | put_unaligned_be16(crc, skb_put(skb, NXP_NCI_FW_CRC_LEN)); |
diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c index ff22d761183c..198585bbc771 100644 --- a/drivers/nfc/nxp-nci/i2c.c +++ b/drivers/nfc/nxp-nci/i2c.c | |||
@@ -135,7 +135,7 @@ static int nxp_nci_i2c_fw_read(struct nxp_nci_i2c_phy *phy, | |||
135 | goto fw_read_exit; | 135 | goto fw_read_exit; |
136 | } | 136 | } |
137 | 137 | ||
138 | memcpy(skb_put(*skb, NXP_NCI_FW_HDR_LEN), &header, NXP_NCI_FW_HDR_LEN); | 138 | skb_put_data(*skb, &header, NXP_NCI_FW_HDR_LEN); |
139 | 139 | ||
140 | r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len); | 140 | r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len); |
141 | if (r != frame_len) { | 141 | if (r != frame_len) { |
@@ -176,8 +176,7 @@ static int nxp_nci_i2c_nci_read(struct nxp_nci_i2c_phy *phy, | |||
176 | goto nci_read_exit; | 176 | goto nci_read_exit; |
177 | } | 177 | } |
178 | 178 | ||
179 | memcpy(skb_put(*skb, NCI_CTRL_HDR_SIZE), (void *) &header, | 179 | skb_put_data(*skb, (void *)&header, NCI_CTRL_HDR_SIZE); |
180 | NCI_CTRL_HDR_SIZE); | ||
181 | 180 | ||
182 | r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen); | 181 | r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen); |
183 | if (r != header.plen) { | 182 | if (r != header.plen) { |
diff --git a/drivers/nfc/pn533/pn533.c b/drivers/nfc/pn533/pn533.c index 70c304504a29..9200bb308e42 100644 --- a/drivers/nfc/pn533/pn533.c +++ b/drivers/nfc/pn533/pn533.c | |||
@@ -1035,11 +1035,10 @@ static struct sk_buff *pn533_alloc_poll_tg_frame(struct pn533 *dev) | |||
1035 | *skb_put(skb, 1) = PN533_INIT_TARGET_DEP; | 1035 | *skb_put(skb, 1) = PN533_INIT_TARGET_DEP; |
1036 | 1036 | ||
1037 | /* MIFARE params */ | 1037 | /* MIFARE params */ |
1038 | memcpy(skb_put(skb, 6), mifare_params, 6); | 1038 | skb_put_data(skb, mifare_params, 6); |
1039 | 1039 | ||
1040 | /* Felica params */ | 1040 | /* Felica params */ |
1041 | felica = skb_put(skb, 18); | 1041 | felica = skb_put_data(skb, felica_params, 18); |
1042 | memcpy(felica, felica_params, 18); | ||
1043 | get_random_bytes(felica + 2, 6); | 1042 | get_random_bytes(felica + 2, 6); |
1044 | 1043 | ||
1045 | /* NFCID3 */ | 1044 | /* NFCID3 */ |
@@ -1049,8 +1048,7 @@ static struct sk_buff *pn533_alloc_poll_tg_frame(struct pn533 *dev) | |||
1049 | /* General bytes */ | 1048 | /* General bytes */ |
1050 | *skb_put(skb, 1) = gbytes_len; | 1049 | *skb_put(skb, 1) = gbytes_len; |
1051 | 1050 | ||
1052 | gb = skb_put(skb, gbytes_len); | 1051 | gb = skb_put_data(skb, gbytes, gbytes_len); |
1053 | memcpy(gb, gbytes, gbytes_len); | ||
1054 | 1052 | ||
1055 | /* Len Tk */ | 1053 | /* Len Tk */ |
1056 | *skb_put(skb, 1) = 0; | 1054 | *skb_put(skb, 1) = 0; |
@@ -1384,15 +1382,14 @@ static int pn533_poll_dep(struct nfc_dev *nfc_dev) | |||
1384 | *next = 0; | 1382 | *next = 0; |
1385 | 1383 | ||
1386 | /* Copy passive data */ | 1384 | /* Copy passive data */ |
1387 | memcpy(skb_put(skb, PASSIVE_DATA_LEN), passive_data, PASSIVE_DATA_LEN); | 1385 | skb_put_data(skb, passive_data, PASSIVE_DATA_LEN); |
1388 | *next |= 1; | 1386 | *next |= 1; |
1389 | 1387 | ||
1390 | /* Copy NFCID3 (which is NFCID2 from SENSF_RES) */ | 1388 | /* Copy NFCID3 (which is NFCID2 from SENSF_RES) */ |
1391 | memcpy(skb_put(skb, NFC_NFCID3_MAXSIZE), nfcid3, | 1389 | skb_put_data(skb, nfcid3, NFC_NFCID3_MAXSIZE); |
1392 | NFC_NFCID3_MAXSIZE); | ||
1393 | *next |= 2; | 1390 | *next |= 2; |
1394 | 1391 | ||
1395 | memcpy(skb_put(skb, dev->gb_len), dev->gb, dev->gb_len); | 1392 | skb_put_data(skb, dev->gb, dev->gb_len); |
1396 | *next |= 4; /* We have some Gi */ | 1393 | *next |= 4; /* We have some Gi */ |
1397 | 1394 | ||
1398 | rc = pn533_send_cmd_async(dev, PN533_CMD_IN_JUMP_FOR_DEP, skb, | 1395 | rc = pn533_send_cmd_async(dev, PN533_CMD_IN_JUMP_FOR_DEP, skb, |
@@ -1472,7 +1469,7 @@ static struct sk_buff *pn533_alloc_poll_in_frame(struct pn533 *dev, | |||
1472 | if (!skb) | 1469 | if (!skb) |
1473 | return NULL; | 1470 | return NULL; |
1474 | 1471 | ||
1475 | memcpy(skb_put(skb, mod->len), &mod->data, mod->len); | 1472 | skb_put_data(skb, &mod->data, mod->len); |
1476 | 1473 | ||
1477 | return skb; | 1474 | return skb; |
1478 | } | 1475 | } |
@@ -1858,7 +1855,7 @@ static int pn533_dep_link_up(struct nfc_dev *nfc_dev, struct nfc_target *target, | |||
1858 | *next = 0; | 1855 | *next = 0; |
1859 | 1856 | ||
1860 | /* Copy passive data */ | 1857 | /* Copy passive data */ |
1861 | memcpy(skb_put(skb, PASSIVE_DATA_LEN), passive_data, PASSIVE_DATA_LEN); | 1858 | skb_put_data(skb, passive_data, PASSIVE_DATA_LEN); |
1862 | *next |= 1; | 1859 | *next |= 1; |
1863 | 1860 | ||
1864 | /* Copy NFCID3 (which is NFCID2 from SENSF_RES) */ | 1861 | /* Copy NFCID3 (which is NFCID2 from SENSF_RES) */ |
@@ -1866,12 +1863,11 @@ static int pn533_dep_link_up(struct nfc_dev *nfc_dev, struct nfc_target *target, | |||
1866 | memcpy(skb_put(skb, NFC_NFCID3_MAXSIZE), target->nfcid2, | 1863 | memcpy(skb_put(skb, NFC_NFCID3_MAXSIZE), target->nfcid2, |
1867 | target->nfcid2_len); | 1864 | target->nfcid2_len); |
1868 | else | 1865 | else |
1869 | memcpy(skb_put(skb, NFC_NFCID3_MAXSIZE), nfcid3, | 1866 | skb_put_data(skb, nfcid3, NFC_NFCID3_MAXSIZE); |
1870 | NFC_NFCID3_MAXSIZE); | ||
1871 | *next |= 2; | 1867 | *next |= 2; |
1872 | 1868 | ||
1873 | if (gb != NULL && gb_len > 0) { | 1869 | if (gb != NULL && gb_len > 0) { |
1874 | memcpy(skb_put(skb, gb_len), gb, gb_len); | 1870 | skb_put_data(skb, gb, gb_len); |
1875 | *next |= 4; /* We have some Gi */ | 1871 | *next |= 4; /* We have some Gi */ |
1876 | } else { | 1872 | } else { |
1877 | *next = 0; | 1873 | *next = 0; |
@@ -2100,7 +2096,7 @@ static int pn533_fill_fragment_skbs(struct pn533 *dev, struct sk_buff *skb) | |||
2100 | *skb_push(frag, sizeof(u8)) = 1; /* TG */ | 2096 | *skb_push(frag, sizeof(u8)) = 1; /* TG */ |
2101 | } | 2097 | } |
2102 | 2098 | ||
2103 | memcpy(skb_put(frag, frag_size), skb->data, frag_size); | 2099 | skb_put_data(frag, skb->data, frag_size); |
2104 | 2100 | ||
2105 | /* Reduce the size of incoming buffer */ | 2101 | /* Reduce the size of incoming buffer */ |
2106 | skb_pull(skb, frag_size); | 2102 | skb_pull(skb, frag_size); |
@@ -2375,7 +2371,7 @@ static int pn533_set_configuration(struct pn533 *dev, u8 cfgitem, u8 *cfgdata, | |||
2375 | return -ENOMEM; | 2371 | return -ENOMEM; |
2376 | 2372 | ||
2377 | *skb_put(skb, sizeof(cfgitem)) = cfgitem; | 2373 | *skb_put(skb, sizeof(cfgitem)) = cfgitem; |
2378 | memcpy(skb_put(skb, cfgdata_len), cfgdata, cfgdata_len); | 2374 | skb_put_data(skb, cfgdata, cfgdata_len); |
2379 | 2375 | ||
2380 | resp = pn533_send_cmd_sync(dev, PN533_CMD_RF_CONFIGURATION, skb); | 2376 | resp = pn533_send_cmd_sync(dev, PN533_CMD_RF_CONFIGURATION, skb); |
2381 | if (IS_ERR(resp)) | 2377 | if (IS_ERR(resp)) |
diff --git a/drivers/nfc/pn533/usb.c b/drivers/nfc/pn533/usb.c index 8ed203ea21ea..e153e8b64bb8 100644 --- a/drivers/nfc/pn533/usb.c +++ b/drivers/nfc/pn533/usb.c | |||
@@ -75,8 +75,8 @@ static void pn533_recv_response(struct urb *urb) | |||
75 | if (!skb) { | 75 | if (!skb) { |
76 | nfc_err(&phy->udev->dev, "failed to alloc memory\n"); | 76 | nfc_err(&phy->udev->dev, "failed to alloc memory\n"); |
77 | } else { | 77 | } else { |
78 | memcpy(skb_put(skb, urb->actual_length), | 78 | skb_put_data(skb, urb->transfer_buffer, |
79 | urb->transfer_buffer, urb->actual_length); | 79 | urb->actual_length); |
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
diff --git a/drivers/nfc/port100.c b/drivers/nfc/port100.c index 19be93e177fe..e1260da73d45 100644 --- a/drivers/nfc/port100.c +++ b/drivers/nfc/port100.c | |||
@@ -1089,9 +1089,8 @@ static int port100_in_set_rf(struct nfc_digital_dev *ddev, u8 rf) | |||
1089 | if (!skb) | 1089 | if (!skb) |
1090 | return -ENOMEM; | 1090 | return -ENOMEM; |
1091 | 1091 | ||
1092 | memcpy(skb_put(skb, sizeof(struct port100_in_rf_setting)), | 1092 | skb_put_data(skb, &in_rf_settings[rf], |
1093 | &in_rf_settings[rf], | 1093 | sizeof(struct port100_in_rf_setting)); |
1094 | sizeof(struct port100_in_rf_setting)); | ||
1095 | 1094 | ||
1096 | resp = port100_send_cmd_sync(dev, PORT100_CMD_IN_SET_RF, skb); | 1095 | resp = port100_send_cmd_sync(dev, PORT100_CMD_IN_SET_RF, skb); |
1097 | 1096 | ||
@@ -1133,7 +1132,7 @@ static int port100_in_set_framing(struct nfc_digital_dev *ddev, int param) | |||
1133 | if (!skb) | 1132 | if (!skb) |
1134 | return -ENOMEM; | 1133 | return -ENOMEM; |
1135 | 1134 | ||
1136 | memcpy(skb_put(skb, size), protocols, size); | 1135 | skb_put_data(skb, protocols, size); |
1137 | 1136 | ||
1138 | resp = port100_send_cmd_sync(dev, PORT100_CMD_IN_SET_PROTOCOL, skb); | 1137 | resp = port100_send_cmd_sync(dev, PORT100_CMD_IN_SET_PROTOCOL, skb); |
1139 | 1138 | ||
@@ -1247,9 +1246,8 @@ static int port100_tg_set_rf(struct nfc_digital_dev *ddev, u8 rf) | |||
1247 | if (!skb) | 1246 | if (!skb) |
1248 | return -ENOMEM; | 1247 | return -ENOMEM; |
1249 | 1248 | ||
1250 | memcpy(skb_put(skb, sizeof(struct port100_tg_rf_setting)), | 1249 | skb_put_data(skb, &tg_rf_settings[rf], |
1251 | &tg_rf_settings[rf], | 1250 | sizeof(struct port100_tg_rf_setting)); |
1252 | sizeof(struct port100_tg_rf_setting)); | ||
1253 | 1251 | ||
1254 | resp = port100_send_cmd_sync(dev, PORT100_CMD_TG_SET_RF, skb); | 1252 | resp = port100_send_cmd_sync(dev, PORT100_CMD_TG_SET_RF, skb); |
1255 | 1253 | ||
@@ -1291,7 +1289,7 @@ static int port100_tg_set_framing(struct nfc_digital_dev *ddev, int param) | |||
1291 | if (!skb) | 1289 | if (!skb) |
1292 | return -ENOMEM; | 1290 | return -ENOMEM; |
1293 | 1291 | ||
1294 | memcpy(skb_put(skb, size), protocols, size); | 1292 | skb_put_data(skb, protocols, size); |
1295 | 1293 | ||
1296 | resp = port100_send_cmd_sync(dev, PORT100_CMD_TG_SET_PROTOCOL, skb); | 1294 | resp = port100_send_cmd_sync(dev, PORT100_CMD_TG_SET_PROTOCOL, skb); |
1297 | 1295 | ||
diff --git a/drivers/nfc/s3fwrn5/firmware.c b/drivers/nfc/s3fwrn5/firmware.c index 5f97da1947e3..38548bd970cd 100644 --- a/drivers/nfc/s3fwrn5/firmware.c +++ b/drivers/nfc/s3fwrn5/firmware.c | |||
@@ -76,9 +76,9 @@ static int s3fwrn5_fw_prep_msg(struct s3fwrn5_fw_info *fw_info, | |||
76 | if (!skb) | 76 | if (!skb) |
77 | return -ENOMEM; | 77 | return -ENOMEM; |
78 | 78 | ||
79 | memcpy(skb_put(skb, S3FWRN5_FW_HDR_SIZE), &hdr, S3FWRN5_FW_HDR_SIZE); | 79 | skb_put_data(skb, &hdr, S3FWRN5_FW_HDR_SIZE); |
80 | if (len) | 80 | if (len) |
81 | memcpy(skb_put(skb, len), data, len); | 81 | skb_put_data(skb, data, len); |
82 | 82 | ||
83 | *msg = skb; | 83 | *msg = skb; |
84 | 84 | ||
diff --git a/drivers/nfc/s3fwrn5/i2c.c b/drivers/nfc/s3fwrn5/i2c.c index 3ed0adf6479b..3f09d7fd2285 100644 --- a/drivers/nfc/s3fwrn5/i2c.c +++ b/drivers/nfc/s3fwrn5/i2c.c | |||
@@ -157,7 +157,7 @@ static int s3fwrn5_i2c_read(struct s3fwrn5_i2c_phy *phy) | |||
157 | if (!skb) | 157 | if (!skb) |
158 | return -ENOMEM; | 158 | return -ENOMEM; |
159 | 159 | ||
160 | memcpy(skb_put(skb, hdr_size), hdr, hdr_size); | 160 | skb_put_data(skb, hdr, hdr_size); |
161 | 161 | ||
162 | if (data_len == 0) | 162 | if (data_len == 0) |
163 | goto out; | 163 | goto out; |
diff --git a/drivers/nfc/st21nfca/dep.c b/drivers/nfc/st21nfca/dep.c index 798a32bbac5d..ada7b114b6c1 100644 --- a/drivers/nfc/st21nfca/dep.c +++ b/drivers/nfc/st21nfca/dep.c | |||
@@ -564,7 +564,7 @@ int st21nfca_im_send_atr_req(struct nfc_hci_dev *hdev, u8 *gb, size_t gb_len) | |||
564 | atr_req->ppi = ST21NFCA_LR_BITS_PAYLOAD_SIZE_254B; | 564 | atr_req->ppi = ST21NFCA_LR_BITS_PAYLOAD_SIZE_254B; |
565 | if (gb_len) { | 565 | if (gb_len) { |
566 | atr_req->ppi |= ST21NFCA_GB_BIT; | 566 | atr_req->ppi |= ST21NFCA_GB_BIT; |
567 | memcpy(skb_put(skb, gb_len), gb, gb_len); | 567 | skb_put_data(skb, gb, gb_len); |
568 | } | 568 | } |
569 | atr_req->length = sizeof(struct st21nfca_atr_req) + hdev->gb_len; | 569 | atr_req->length = sizeof(struct st21nfca_atr_req) + hdev->gb_len; |
570 | 570 | ||
diff --git a/drivers/nfc/st21nfca/i2c.c b/drivers/nfc/st21nfca/i2c.c index 02a920ca07c8..94d0b913b627 100644 --- a/drivers/nfc/st21nfca/i2c.c +++ b/drivers/nfc/st21nfca/i2c.c | |||
@@ -407,7 +407,7 @@ static int st21nfca_hci_i2c_read(struct st21nfca_i2c_phy *phy, | |||
407 | phy->current_read_len = 0; | 407 | phy->current_read_len = 0; |
408 | } | 408 | } |
409 | 409 | ||
410 | memcpy(skb_put(skb, len), buf, len); | 410 | skb_put_data(skb, buf, len); |
411 | 411 | ||
412 | if (skb->data[skb->len - 1] == ST21NFCA_SOF_EOF) { | 412 | if (skb->data[skb->len - 1] == ST21NFCA_SOF_EOF) { |
413 | phy->current_read_len = 0; | 413 | phy->current_read_len = 0; |
diff --git a/drivers/rpmsg/rpmsg_char.c b/drivers/rpmsg/rpmsg_char.c index 0ca2ccc09ca6..2576284f99a7 100644 --- a/drivers/rpmsg/rpmsg_char.c +++ b/drivers/rpmsg/rpmsg_char.c | |||
@@ -116,7 +116,7 @@ static int rpmsg_ept_cb(struct rpmsg_device *rpdev, void *buf, int len, | |||
116 | if (!skb) | 116 | if (!skb) |
117 | return -ENOMEM; | 117 | return -ENOMEM; |
118 | 118 | ||
119 | memcpy(skb_put(skb, len), buf, len); | 119 | skb_put_data(skb, buf, len); |
120 | 120 | ||
121 | spin_lock(&eptdev->queue_lock); | 121 | spin_lock(&eptdev->queue_lock); |
122 | skb_queue_tail(&eptdev->queue, skb); | 122 | skb_queue_tail(&eptdev->queue, skb); |
diff --git a/drivers/s390/net/ctcm_fsms.c b/drivers/s390/net/ctcm_fsms.c index 730d9619400e..e9847ce3860d 100644 --- a/drivers/s390/net/ctcm_fsms.c +++ b/drivers/s390/net/ctcm_fsms.c | |||
@@ -1279,7 +1279,7 @@ static void ctcmpc_chx_txdone(fsm_instance *fi, int event, void *arg) | |||
1279 | __func__, data_space); | 1279 | __func__, data_space); |
1280 | 1280 | ||
1281 | while ((skb = skb_dequeue(&ch->collect_queue))) { | 1281 | while ((skb = skb_dequeue(&ch->collect_queue))) { |
1282 | memcpy(skb_put(ch->trans_skb, skb->len), skb->data, skb->len); | 1282 | skb_put_data(ch->trans_skb, skb->data, skb->len); |
1283 | p_header = (struct pdu *) | 1283 | p_header = (struct pdu *) |
1284 | (skb_tail_pointer(ch->trans_skb) - skb->len); | 1284 | (skb_tail_pointer(ch->trans_skb) - skb->len); |
1285 | p_header->pdu_flag = 0x00; | 1285 | p_header->pdu_flag = 0x00; |
@@ -1431,13 +1431,12 @@ static void ctcmpc_chx_rx(fsm_instance *fi, int event, void *arg) | |||
1431 | break; | 1431 | break; |
1432 | case MPCG_STATE_FLOWC: | 1432 | case MPCG_STATE_FLOWC: |
1433 | case MPCG_STATE_READY: | 1433 | case MPCG_STATE_READY: |
1434 | memcpy(skb_put(new_skb, block_len), | 1434 | skb_put_data(new_skb, skb->data, block_len); |
1435 | skb->data, block_len); | ||
1436 | skb_queue_tail(&ch->io_queue, new_skb); | 1435 | skb_queue_tail(&ch->io_queue, new_skb); |
1437 | tasklet_schedule(&ch->ch_tasklet); | 1436 | tasklet_schedule(&ch->ch_tasklet); |
1438 | break; | 1437 | break; |
1439 | default: | 1438 | default: |
1440 | memcpy(skb_put(new_skb, len), skb->data, len); | 1439 | skb_put_data(new_skb, skb->data, len); |
1441 | skb_queue_tail(&ch->io_queue, new_skb); | 1440 | skb_queue_tail(&ch->io_queue, new_skb); |
1442 | tasklet_hi_schedule(&ch->ch_tasklet); | 1441 | tasklet_hi_schedule(&ch->ch_tasklet); |
1443 | break; | 1442 | break; |
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c index 198842ce6876..99121352c57b 100644 --- a/drivers/s390/net/ctcm_main.c +++ b/drivers/s390/net/ctcm_main.c | |||
@@ -522,7 +522,7 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb) | |||
522 | ctcm_clear_busy(ch->netdev); | 522 | ctcm_clear_busy(ch->netdev); |
523 | return -ENOMEM; | 523 | return -ENOMEM; |
524 | } else { | 524 | } else { |
525 | memcpy(skb_put(nskb, skb->len), skb->data, skb->len); | 525 | skb_put_data(nskb, skb->data, skb->len); |
526 | atomic_inc(&nskb->users); | 526 | atomic_inc(&nskb->users); |
527 | atomic_dec(&skb->users); | 527 | atomic_dec(&skb->users); |
528 | dev_kfree_skb_irq(skb); | 528 | dev_kfree_skb_irq(skb); |
@@ -638,7 +638,7 @@ static void ctcmpc_send_sweep_req(struct channel *rch) | |||
638 | header->th.th_seq_num = 0x00; | 638 | header->th.th_seq_num = 0x00; |
639 | header->sw.th_last_seq = ch->th_seq_num; | 639 | header->sw.th_last_seq = ch->th_seq_num; |
640 | 640 | ||
641 | memcpy(skb_put(sweep_skb, TH_SWEEP_LENGTH), header, TH_SWEEP_LENGTH); | 641 | skb_put_data(sweep_skb, header, TH_SWEEP_LENGTH); |
642 | 642 | ||
643 | kfree(header); | 643 | kfree(header); |
644 | 644 | ||
@@ -728,7 +728,7 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb) | |||
728 | if (!nskb) { | 728 | if (!nskb) { |
729 | goto nomem_exit; | 729 | goto nomem_exit; |
730 | } else { | 730 | } else { |
731 | memcpy(skb_put(nskb, skb->len), skb->data, skb->len); | 731 | skb_put_data(nskb, skb->data, skb->len); |
732 | atomic_inc(&nskb->users); | 732 | atomic_inc(&nskb->users); |
733 | atomic_dec(&skb->users); | 733 | atomic_dec(&skb->users); |
734 | dev_kfree_skb_irq(skb); | 734 | dev_kfree_skb_irq(skb); |
@@ -809,7 +809,7 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb) | |||
809 | skb_reset_tail_pointer(ch->trans_skb); | 809 | skb_reset_tail_pointer(ch->trans_skb); |
810 | ch->trans_skb->len = 0; | 810 | ch->trans_skb->len = 0; |
811 | ch->ccw[1].count = skb->len; | 811 | ch->ccw[1].count = skb->len; |
812 | memcpy(skb_put(ch->trans_skb, skb->len), skb->data, skb->len); | 812 | skb_put_data(ch->trans_skb, skb->data, skb->len); |
813 | atomic_dec(&skb->users); | 813 | atomic_dec(&skb->users); |
814 | dev_kfree_skb_irq(skb); | 814 | dev_kfree_skb_irq(skb); |
815 | ccw_idx = 0; | 815 | ccw_idx = 0; |
@@ -960,7 +960,7 @@ static int ctcmpc_tx(struct sk_buff *skb, struct net_device *dev) | |||
960 | } | 960 | } |
961 | newskb->protocol = skb->protocol; | 961 | newskb->protocol = skb->protocol; |
962 | skb_reserve(newskb, TH_HEADER_LENGTH + PDU_HEADER_LENGTH); | 962 | skb_reserve(newskb, TH_HEADER_LENGTH + PDU_HEADER_LENGTH); |
963 | memcpy(skb_put(newskb, skb->len), skb->data, skb->len); | 963 | skb_put_data(newskb, skb->data, skb->len); |
964 | dev_kfree_skb_any(skb); | 964 | dev_kfree_skb_any(skb); |
965 | skb = newskb; | 965 | skb = newskb; |
966 | } | 966 | } |
diff --git a/drivers/s390/net/ctcm_mpc.c b/drivers/s390/net/ctcm_mpc.c index c103fc7efe9f..f8be39634f03 100644 --- a/drivers/s390/net/ctcm_mpc.c +++ b/drivers/s390/net/ctcm_mpc.c | |||
@@ -667,7 +667,7 @@ static void ctcmpc_send_sweep_resp(struct channel *rch) | |||
667 | header->th.th_seq_num = 0x00; | 667 | header->th.th_seq_num = 0x00; |
668 | header->sw.th_last_seq = ch->th_seq_num; | 668 | header->sw.th_last_seq = ch->th_seq_num; |
669 | 669 | ||
670 | memcpy(skb_put(sweep_skb, TH_SWEEP_LENGTH), header, TH_SWEEP_LENGTH); | 670 | skb_put_data(sweep_skb, header, TH_SWEEP_LENGTH); |
671 | 671 | ||
672 | kfree(header); | 672 | kfree(header); |
673 | 673 | ||
@@ -974,9 +974,8 @@ void mpc_channel_action(struct channel *ch, int direction, int action) | |||
974 | skb_reset_tail_pointer(ch->xid_skb); | 974 | skb_reset_tail_pointer(ch->xid_skb); |
975 | ch->xid_skb->len = 0; | 975 | ch->xid_skb->len = 0; |
976 | 976 | ||
977 | memcpy(skb_put(ch->xid_skb, grp->xid_skb->len), | 977 | skb_put_data(ch->xid_skb, grp->xid_skb->data, |
978 | grp->xid_skb->data, | 978 | grp->xid_skb->len); |
979 | grp->xid_skb->len); | ||
980 | 979 | ||
981 | ch->xid->xid2_dlc_type = | 980 | ch->xid->xid2_dlc_type = |
982 | ((CHANNEL_DIRECTION(ch->flags) == CTCM_READ) | 981 | ((CHANNEL_DIRECTION(ch->flags) == CTCM_READ) |
@@ -1149,7 +1148,7 @@ static void ctcmpc_unpack_skb(struct channel *ch, struct sk_buff *pskb) | |||
1149 | fsm_event(grp->fsm, MPCG_EVENT_INOP, dev); | 1148 | fsm_event(grp->fsm, MPCG_EVENT_INOP, dev); |
1150 | goto done; | 1149 | goto done; |
1151 | } | 1150 | } |
1152 | memcpy(skb_put(skb, new_len), pskb->data, new_len); | 1151 | skb_put_data(skb, pskb->data, new_len); |
1153 | 1152 | ||
1154 | skb_reset_mac_header(skb); | 1153 | skb_reset_mac_header(skb); |
1155 | skb->dev = pskb->dev; | 1154 | skb->dev = pskb->dev; |
@@ -1297,16 +1296,15 @@ struct mpc_group *ctcmpc_init_mpc_group(struct ctcm_priv *priv) | |||
1297 | /* base xid for all channels in group */ | 1296 | /* base xid for all channels in group */ |
1298 | grp->xid_skb_data = grp->xid_skb->data; | 1297 | grp->xid_skb_data = grp->xid_skb->data; |
1299 | grp->xid_th = (struct th_header *)grp->xid_skb->data; | 1298 | grp->xid_th = (struct th_header *)grp->xid_skb->data; |
1300 | memcpy(skb_put(grp->xid_skb, TH_HEADER_LENGTH), | 1299 | skb_put_data(grp->xid_skb, &thnorm, TH_HEADER_LENGTH); |
1301 | &thnorm, TH_HEADER_LENGTH); | ||
1302 | 1300 | ||
1303 | grp->xid = (struct xid2 *)skb_tail_pointer(grp->xid_skb); | 1301 | grp->xid = (struct xid2 *)skb_tail_pointer(grp->xid_skb); |
1304 | memcpy(skb_put(grp->xid_skb, XID2_LENGTH), &init_xid, XID2_LENGTH); | 1302 | skb_put_data(grp->xid_skb, &init_xid, XID2_LENGTH); |
1305 | grp->xid->xid2_adj_id = jiffies | 0xfff00000; | 1303 | grp->xid->xid2_adj_id = jiffies | 0xfff00000; |
1306 | grp->xid->xid2_sender_id = jiffies; | 1304 | grp->xid->xid2_sender_id = jiffies; |
1307 | 1305 | ||
1308 | grp->xid_id = skb_tail_pointer(grp->xid_skb); | 1306 | grp->xid_id = skb_tail_pointer(grp->xid_skb); |
1309 | memcpy(skb_put(grp->xid_skb, 4), "VTAM", 4); | 1307 | skb_put_data(grp->xid_skb, "VTAM", 4); |
1310 | 1308 | ||
1311 | grp->rcvd_xid_skb = | 1309 | grp->rcvd_xid_skb = |
1312 | __dev_alloc_skb(MPC_BUFSIZE_DEFAULT, GFP_ATOMIC|GFP_DMA); | 1310 | __dev_alloc_skb(MPC_BUFSIZE_DEFAULT, GFP_ATOMIC|GFP_DMA); |
@@ -1318,8 +1316,7 @@ struct mpc_group *ctcmpc_init_mpc_group(struct ctcm_priv *priv) | |||
1318 | } | 1316 | } |
1319 | grp->rcvd_xid_data = grp->rcvd_xid_skb->data; | 1317 | grp->rcvd_xid_data = grp->rcvd_xid_skb->data; |
1320 | grp->rcvd_xid_th = (struct th_header *)grp->rcvd_xid_skb->data; | 1318 | grp->rcvd_xid_th = (struct th_header *)grp->rcvd_xid_skb->data; |
1321 | memcpy(skb_put(grp->rcvd_xid_skb, TH_HEADER_LENGTH), | 1319 | skb_put_data(grp->rcvd_xid_skb, &thnorm, TH_HEADER_LENGTH); |
1322 | &thnorm, TH_HEADER_LENGTH); | ||
1323 | grp->saved_xid2 = NULL; | 1320 | grp->saved_xid2 = NULL; |
1324 | priv->xid = grp->xid; | 1321 | priv->xid = grp->xid; |
1325 | priv->mpcg = grp; | 1322 | priv->mpcg = grp; |
@@ -1410,8 +1407,7 @@ static void mpc_action_go_inop(fsm_instance *fi, int event, void *arg) | |||
1410 | skb_reset_tail_pointer(grp->rcvd_xid_skb); | 1407 | skb_reset_tail_pointer(grp->rcvd_xid_skb); |
1411 | grp->rcvd_xid_skb->len = 0; | 1408 | grp->rcvd_xid_skb->len = 0; |
1412 | grp->rcvd_xid_th = (struct th_header *)grp->rcvd_xid_skb->data; | 1409 | grp->rcvd_xid_th = (struct th_header *)grp->rcvd_xid_skb->data; |
1413 | memcpy(skb_put(grp->rcvd_xid_skb, TH_HEADER_LENGTH), &thnorm, | 1410 | skb_put_data(grp->rcvd_xid_skb, &thnorm, TH_HEADER_LENGTH); |
1414 | TH_HEADER_LENGTH); | ||
1415 | 1411 | ||
1416 | if (grp->send_qllc_disc == 1) { | 1412 | if (grp->send_qllc_disc == 1) { |
1417 | grp->send_qllc_disc = 0; | 1413 | grp->send_qllc_disc = 0; |
@@ -1590,8 +1586,7 @@ static int mpc_validate_xid(struct mpcg_info *mpcginfo) | |||
1590 | grp->saved_xid2 = | 1586 | grp->saved_xid2 = |
1591 | (struct xid2 *)skb_tail_pointer(grp->rcvd_xid_skb); | 1587 | (struct xid2 *)skb_tail_pointer(grp->rcvd_xid_skb); |
1592 | 1588 | ||
1593 | memcpy(skb_put(grp->rcvd_xid_skb, | 1589 | skb_put_data(grp->rcvd_xid_skb, xid, XID2_LENGTH); |
1594 | XID2_LENGTH), xid, XID2_LENGTH); | ||
1595 | grp->rcvd_xid_skb->data = grp->rcvd_xid_data; | 1590 | grp->rcvd_xid_skb->data = grp->rcvd_xid_data; |
1596 | 1591 | ||
1597 | skb_reset_tail_pointer(grp->rcvd_xid_skb); | 1592 | skb_reset_tail_pointer(grp->rcvd_xid_skb); |
@@ -1908,17 +1903,15 @@ static void mpc_action_doxid7(fsm_instance *fsm, int event, void *arg) | |||
1908 | if (fsm_getstate(ch->fsm) == CH_XID7_PENDING1) { | 1903 | if (fsm_getstate(ch->fsm) == CH_XID7_PENDING1) { |
1909 | fsm_newstate(ch->fsm, CH_XID7_PENDING2); | 1904 | fsm_newstate(ch->fsm, CH_XID7_PENDING2); |
1910 | ch->ccw[8].cmd_code = CCW_CMD_SENSE_CMD; | 1905 | ch->ccw[8].cmd_code = CCW_CMD_SENSE_CMD; |
1911 | memcpy(skb_put(ch->xid_skb, | 1906 | skb_put_data(ch->xid_skb, &thdummy, |
1912 | TH_HEADER_LENGTH), | 1907 | TH_HEADER_LENGTH); |
1913 | &thdummy, TH_HEADER_LENGTH); | ||
1914 | send = 1; | 1908 | send = 1; |
1915 | } | 1909 | } |
1916 | } else if (fsm_getstate(ch->fsm) < CH_XID7_PENDING2) { | 1910 | } else if (fsm_getstate(ch->fsm) < CH_XID7_PENDING2) { |
1917 | fsm_newstate(ch->fsm, CH_XID7_PENDING2); | 1911 | fsm_newstate(ch->fsm, CH_XID7_PENDING2); |
1918 | ch->ccw[8].cmd_code = CCW_CMD_WRITE_CTL; | 1912 | ch->ccw[8].cmd_code = CCW_CMD_WRITE_CTL; |
1919 | memcpy(skb_put(ch->xid_skb, | 1913 | skb_put_data(ch->xid_skb, &thnorm, |
1920 | TH_HEADER_LENGTH), | 1914 | TH_HEADER_LENGTH); |
1921 | &thnorm, TH_HEADER_LENGTH); | ||
1922 | send = 1; | 1915 | send = 1; |
1923 | } | 1916 | } |
1924 | } else { | 1917 | } else { |
@@ -1926,17 +1919,16 @@ static void mpc_action_doxid7(fsm_instance *fsm, int event, void *arg) | |||
1926 | if (grp->roll == YSIDE) { | 1919 | if (grp->roll == YSIDE) { |
1927 | if (fsm_getstate(ch->fsm) < CH_XID7_PENDING4) { | 1920 | if (fsm_getstate(ch->fsm) < CH_XID7_PENDING4) { |
1928 | fsm_newstate(ch->fsm, CH_XID7_PENDING4); | 1921 | fsm_newstate(ch->fsm, CH_XID7_PENDING4); |
1929 | memcpy(skb_put(ch->xid_skb, | 1922 | skb_put_data(ch->xid_skb, &thnorm, |
1930 | TH_HEADER_LENGTH), | 1923 | TH_HEADER_LENGTH); |
1931 | &thnorm, TH_HEADER_LENGTH); | ||
1932 | ch->ccw[8].cmd_code = CCW_CMD_WRITE_CTL; | 1924 | ch->ccw[8].cmd_code = CCW_CMD_WRITE_CTL; |
1933 | send = 1; | 1925 | send = 1; |
1934 | } | 1926 | } |
1935 | } else if (fsm_getstate(ch->fsm) == CH_XID7_PENDING3) { | 1927 | } else if (fsm_getstate(ch->fsm) == CH_XID7_PENDING3) { |
1936 | fsm_newstate(ch->fsm, CH_XID7_PENDING4); | 1928 | fsm_newstate(ch->fsm, CH_XID7_PENDING4); |
1937 | ch->ccw[8].cmd_code = CCW_CMD_SENSE_CMD; | 1929 | ch->ccw[8].cmd_code = CCW_CMD_SENSE_CMD; |
1938 | memcpy(skb_put(ch->xid_skb, TH_HEADER_LENGTH), | 1930 | skb_put_data(ch->xid_skb, &thdummy, |
1939 | &thdummy, TH_HEADER_LENGTH); | 1931 | TH_HEADER_LENGTH); |
1940 | send = 1; | 1932 | send = 1; |
1941 | } | 1933 | } |
1942 | } | 1934 | } |
@@ -2122,7 +2114,7 @@ static int mpc_send_qllc_discontact(struct net_device *dev) | |||
2122 | return -ENOMEM; | 2114 | return -ENOMEM; |
2123 | } | 2115 | } |
2124 | 2116 | ||
2125 | memcpy(skb_put(skb, new_len), qllcptr, new_len); | 2117 | skb_put_data(skb, qllcptr, new_len); |
2126 | kfree(qllcptr); | 2118 | kfree(qllcptr); |
2127 | 2119 | ||
2128 | if (skb_headroom(skb) < 4) { | 2120 | if (skb_headroom(skb) < 4) { |
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c index 211b31d9f157..337bacb43d68 100644 --- a/drivers/s390/net/lcs.c +++ b/drivers/s390/net/lcs.c | |||
@@ -1796,7 +1796,7 @@ lcs_get_skb(struct lcs_card *card, char *skb_data, unsigned int skb_len) | |||
1796 | card->stats.rx_dropped++; | 1796 | card->stats.rx_dropped++; |
1797 | return; | 1797 | return; |
1798 | } | 1798 | } |
1799 | memcpy(skb_put(skb, skb_len), skb_data, skb_len); | 1799 | skb_put_data(skb, skb_data, skb_len); |
1800 | skb->protocol = card->lan_type_trans(skb, card->dev); | 1800 | skb->protocol = card->lan_type_trans(skb, card->dev); |
1801 | card->stats.rx_bytes += skb_len; | 1801 | card->stats.rx_bytes += skb_len; |
1802 | card->stats.rx_packets++; | 1802 | card->stats.rx_packets++; |
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c index fa732bd86729..7db427c0a6a4 100644 --- a/drivers/s390/net/netiucv.c +++ b/drivers/s390/net/netiucv.c | |||
@@ -759,8 +759,7 @@ static void conn_action_txdone(fsm_instance *fi, int event, void *arg) | |||
759 | spin_lock_irqsave(&conn->collect_lock, saveflags); | 759 | spin_lock_irqsave(&conn->collect_lock, saveflags); |
760 | while ((skb = skb_dequeue(&conn->collect_queue))) { | 760 | while ((skb = skb_dequeue(&conn->collect_queue))) { |
761 | header.next = conn->tx_buff->len + skb->len + NETIUCV_HDRLEN; | 761 | header.next = conn->tx_buff->len + skb->len + NETIUCV_HDRLEN; |
762 | memcpy(skb_put(conn->tx_buff, NETIUCV_HDRLEN), &header, | 762 | skb_put_data(conn->tx_buff, &header, NETIUCV_HDRLEN); |
763 | NETIUCV_HDRLEN); | ||
764 | skb_copy_from_linear_data(skb, | 763 | skb_copy_from_linear_data(skb, |
765 | skb_put(conn->tx_buff, skb->len), | 764 | skb_put(conn->tx_buff, skb->len), |
766 | skb->len); | 765 | skb->len); |
@@ -780,7 +779,7 @@ static void conn_action_txdone(fsm_instance *fi, int event, void *arg) | |||
780 | } | 779 | } |
781 | 780 | ||
782 | header.next = 0; | 781 | header.next = 0; |
783 | memcpy(skb_put(conn->tx_buff, NETIUCV_HDRLEN), &header, NETIUCV_HDRLEN); | 782 | skb_put_data(conn->tx_buff, &header, NETIUCV_HDRLEN); |
784 | conn->prof.send_stamp = jiffies; | 783 | conn->prof.send_stamp = jiffies; |
785 | txmsg.class = 0; | 784 | txmsg.class = 0; |
786 | txmsg.tag = 0; | 785 | txmsg.tag = 0; |
@@ -1201,8 +1200,7 @@ static int netiucv_transmit_skb(struct iucv_connection *conn, | |||
1201 | return rc; | 1200 | return rc; |
1202 | } else { | 1201 | } else { |
1203 | skb_reserve(nskb, NETIUCV_HDRLEN); | 1202 | skb_reserve(nskb, NETIUCV_HDRLEN); |
1204 | memcpy(skb_put(nskb, skb->len), | 1203 | skb_put_data(nskb, skb->data, skb->len); |
1205 | skb->data, skb->len); | ||
1206 | } | 1204 | } |
1207 | copied = 1; | 1205 | copied = 1; |
1208 | } | 1206 | } |
@@ -1212,7 +1210,7 @@ static int netiucv_transmit_skb(struct iucv_connection *conn, | |||
1212 | header.next = nskb->len + NETIUCV_HDRLEN; | 1210 | header.next = nskb->len + NETIUCV_HDRLEN; |
1213 | memcpy(skb_push(nskb, NETIUCV_HDRLEN), &header, NETIUCV_HDRLEN); | 1211 | memcpy(skb_push(nskb, NETIUCV_HDRLEN), &header, NETIUCV_HDRLEN); |
1214 | header.next = 0; | 1212 | header.next = 0; |
1215 | memcpy(skb_put(nskb, NETIUCV_HDRLEN), &header, NETIUCV_HDRLEN); | 1213 | skb_put_data(nskb, &header, NETIUCV_HDRLEN); |
1216 | 1214 | ||
1217 | fsm_newstate(conn->fsm, CONN_STATE_TX); | 1215 | fsm_newstate(conn->fsm, CONN_STATE_TX); |
1218 | conn->prof.send_stamp = jiffies; | 1216 | conn->prof.send_stamp = jiffies; |
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index 1fb92e870040..08338f27c82c 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c | |||
@@ -5147,12 +5147,11 @@ static inline int qeth_create_skb_frag(struct qeth_qdio_buffer *qethbuffer, | |||
5147 | 5147 | ||
5148 | skb_reserve(*pskb, ETH_HLEN); | 5148 | skb_reserve(*pskb, ETH_HLEN); |
5149 | if (data_len <= QETH_RX_PULL_LEN) { | 5149 | if (data_len <= QETH_RX_PULL_LEN) { |
5150 | memcpy(skb_put(*pskb, data_len), element->addr + offset, | 5150 | skb_put_data(*pskb, element->addr + offset, data_len); |
5151 | data_len); | ||
5152 | } else { | 5151 | } else { |
5153 | get_page(page); | 5152 | get_page(page); |
5154 | memcpy(skb_put(*pskb, QETH_RX_PULL_LEN), | 5153 | skb_put_data(*pskb, element->addr + offset, |
5155 | element->addr + offset, QETH_RX_PULL_LEN); | 5154 | QETH_RX_PULL_LEN); |
5156 | skb_fill_page_desc(*pskb, *pfrag, page, | 5155 | skb_fill_page_desc(*pskb, *pfrag, page, |
5157 | offset + QETH_RX_PULL_LEN, | 5156 | offset + QETH_RX_PULL_LEN, |
5158 | data_len - QETH_RX_PULL_LEN); | 5157 | data_len - QETH_RX_PULL_LEN); |
@@ -5248,8 +5247,7 @@ struct sk_buff *qeth_core_get_next_skb(struct qeth_card *card, | |||
5248 | &skb, offset, &frag, data_len)) | 5247 | &skb, offset, &frag, data_len)) |
5249 | goto no_mem; | 5248 | goto no_mem; |
5250 | } else { | 5249 | } else { |
5251 | memcpy(skb_put(skb, data_len), data_ptr, | 5250 | skb_put_data(skb, data_ptr, data_len); |
5252 | data_len); | ||
5253 | } | 5251 | } |
5254 | } | 5252 | } |
5255 | skb_len -= data_len; | 5253 | skb_len -= data_len; |
diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index cf809987f79f..9ab6ce231f11 100644 --- a/drivers/staging/gdm724x/gdm_lte.c +++ b/drivers/staging/gdm724x/gdm_lte.c | |||
@@ -161,12 +161,9 @@ static int gdm_lte_emulate_arp(struct sk_buff *skb_in, u32 nic_type) | |||
161 | return -ENOMEM; | 161 | return -ENOMEM; |
162 | skb_reserve(skb_out, NET_IP_ALIGN); | 162 | skb_reserve(skb_out, NET_IP_ALIGN); |
163 | 163 | ||
164 | memcpy(skb_put(skb_out, mac_header_len), mac_header_data, | 164 | skb_put_data(skb_out, mac_header_data, mac_header_len); |
165 | mac_header_len); | 165 | skb_put_data(skb_out, arp_out, sizeof(struct arphdr)); |
166 | memcpy(skb_put(skb_out, sizeof(struct arphdr)), arp_out, | 166 | skb_put_data(skb_out, arp_data_out, sizeof(struct arpdata)); |
167 | sizeof(struct arphdr)); | ||
168 | memcpy(skb_put(skb_out, sizeof(struct arpdata)), arp_data_out, | ||
169 | sizeof(struct arpdata)); | ||
170 | 167 | ||
171 | skb_out->protocol = ((struct ethhdr *)mac_header_data)->h_proto; | 168 | skb_out->protocol = ((struct ethhdr *)mac_header_data)->h_proto; |
172 | skb_out->dev = skb_in->dev; | 169 | skb_out->dev = skb_in->dev; |
@@ -322,14 +319,10 @@ static int gdm_lte_emulate_ndp(struct sk_buff *skb_in, u32 nic_type) | |||
322 | return -ENOMEM; | 319 | return -ENOMEM; |
323 | skb_reserve(skb_out, NET_IP_ALIGN); | 320 | skb_reserve(skb_out, NET_IP_ALIGN); |
324 | 321 | ||
325 | memcpy(skb_put(skb_out, mac_header_len), mac_header_data, | 322 | skb_put_data(skb_out, mac_header_data, mac_header_len); |
326 | mac_header_len); | 323 | skb_put_data(skb_out, &ipv6_out, sizeof(struct ipv6hdr)); |
327 | memcpy(skb_put(skb_out, sizeof(struct ipv6hdr)), &ipv6_out, | 324 | skb_put_data(skb_out, &icmp6_out, sizeof(struct icmp6hdr)); |
328 | sizeof(struct ipv6hdr)); | 325 | skb_put_data(skb_out, &na, sizeof(struct neighbour_advertisement)); |
329 | memcpy(skb_put(skb_out, sizeof(struct icmp6hdr)), &icmp6_out, | ||
330 | sizeof(struct icmp6hdr)); | ||
331 | memcpy(skb_put(skb_out, sizeof(struct neighbour_advertisement)), &na, | ||
332 | sizeof(struct neighbour_advertisement)); | ||
333 | 326 | ||
334 | skb_out->protocol = ((struct ethhdr *)mac_header_data)->h_proto; | 327 | skb_out->protocol = ((struct ethhdr *)mac_header_data)->h_proto; |
335 | skb_out->dev = skb_in->dev; | 328 | skb_out->dev = skb_in->dev; |
@@ -669,8 +662,8 @@ static void gdm_lte_netif_rx(struct net_device *dev, char *buf, | |||
669 | return; | 662 | return; |
670 | skb_reserve(skb, NET_IP_ALIGN); | 663 | skb_reserve(skb, NET_IP_ALIGN); |
671 | 664 | ||
672 | memcpy(skb_put(skb, mac_header_len), mac_header_data, mac_header_len); | 665 | skb_put_data(skb, mac_header_data, mac_header_len); |
673 | memcpy(skb_put(skb, len), buf, len); | 666 | skb_put_data(skb, buf, len); |
674 | 667 | ||
675 | skb->protocol = ((struct ethhdr *)mac_header_data)->h_proto; | 668 | skb->protocol = ((struct ethhdr *)mac_header_data)->h_proto; |
676 | skb->dev = dev; | 669 | skb->dev = dev; |
diff --git a/drivers/staging/ks7010/ks_hostif.c b/drivers/staging/ks7010/ks_hostif.c index 49e95426ac30..da801d3e0585 100644 --- a/drivers/staging/ks7010/ks_hostif.c +++ b/drivers/staging/ks7010/ks_hostif.c | |||
@@ -466,12 +466,12 @@ void hostif_data_indication(struct ks_wlan_private *priv) | |||
466 | DPRINTK(4, "SNAP, rx_ind_size = %d\n", rx_ind_size); | 466 | DPRINTK(4, "SNAP, rx_ind_size = %d\n", rx_ind_size); |
467 | 467 | ||
468 | size = ETH_ALEN * 2; | 468 | size = ETH_ALEN * 2; |
469 | memcpy(skb_put(skb, size), priv->rxp, size); | 469 | skb_put_data(skb, priv->rxp, size); |
470 | 470 | ||
471 | /* (SNAP+UI..) skip */ | 471 | /* (SNAP+UI..) skip */ |
472 | 472 | ||
473 | size = rx_ind_size - (ETH_ALEN * 2); | 473 | size = rx_ind_size - (ETH_ALEN * 2); |
474 | memcpy(skb_put(skb, size), ð_hdr->h_proto, size); | 474 | skb_put_data(skb, ð_hdr->h_proto, size); |
475 | 475 | ||
476 | aa1x_hdr = (struct ieee802_1x_hdr *)(priv->rxp + ETHER_HDR_SIZE); | 476 | aa1x_hdr = (struct ieee802_1x_hdr *)(priv->rxp + ETHER_HDR_SIZE); |
477 | break; | 477 | break; |
@@ -484,14 +484,13 @@ void hostif_data_indication(struct ks_wlan_private *priv) | |||
484 | } | 484 | } |
485 | DPRINTK(3, "NETBEUI/NetBIOS rx_ind_size=%d\n", rx_ind_size); | 485 | DPRINTK(3, "NETBEUI/NetBIOS rx_ind_size=%d\n", rx_ind_size); |
486 | 486 | ||
487 | memcpy(skb_put(skb, 12), priv->rxp, 12); /* 8802/FDDI MAC copy */ | 487 | skb_put_data(skb, priv->rxp, 12); /* 8802/FDDI MAC copy */ |
488 | 488 | ||
489 | temp[0] = (((rx_ind_size - 12) >> 8) & 0xff); /* NETBEUI size add */ | 489 | temp[0] = (((rx_ind_size - 12) >> 8) & 0xff); /* NETBEUI size add */ |
490 | temp[1] = ((rx_ind_size - 12) & 0xff); | 490 | temp[1] = ((rx_ind_size - 12) & 0xff); |
491 | memcpy(skb_put(skb, 2), temp, 2); | 491 | skb_put_data(skb, temp, 2); |
492 | 492 | ||
493 | memcpy(skb_put(skb, rx_ind_size - 14), priv->rxp + 12, | 493 | skb_put_data(skb, priv->rxp + 12, rx_ind_size - 14); /* copy after Type */ |
494 | rx_ind_size - 14); /* copy after Type */ | ||
495 | 494 | ||
496 | aa1x_hdr = (struct ieee802_1x_hdr *)(priv->rxp + 14); | 495 | aa1x_hdr = (struct ieee802_1x_hdr *)(priv->rxp + 14); |
497 | break; | 496 | break; |
diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index ce1764cba5f0..995674f25172 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c | |||
@@ -486,11 +486,11 @@ static int aim_rx_data(struct mbo *mbo) | |||
486 | ether_addr_copy(skb_put(skb, ETH_ALEN), dev->dev_addr); | 486 | ether_addr_copy(skb_put(skb, ETH_ALEN), dev->dev_addr); |
487 | 487 | ||
488 | /* src */ | 488 | /* src */ |
489 | memcpy(skb_put(skb, 4), &zero, 4); | 489 | skb_put_data(skb, &zero, 4); |
490 | memcpy(skb_put(skb, 2), buf + 5, 2); | 490 | skb_put_data(skb, buf + 5, 2); |
491 | 491 | ||
492 | /* eth type */ | 492 | /* eth type */ |
493 | memcpy(skb_put(skb, 2), buf + 10, 2); | 493 | skb_put_data(skb, buf + 10, 2); |
494 | 494 | ||
495 | buf += MDP_HDR_LEN; | 495 | buf += MDP_HDR_LEN; |
496 | len -= MDP_HDR_LEN; | 496 | len -= MDP_HDR_LEN; |
@@ -499,7 +499,7 @@ static int aim_rx_data(struct mbo *mbo) | |||
499 | len -= MEP_HDR_LEN; | 499 | len -= MEP_HDR_LEN; |
500 | } | 500 | } |
501 | 501 | ||
502 | memcpy(skb_put(skb, len), buf, len); | 502 | skb_put_data(skb, buf, len); |
503 | skb->protocol = eth_type_trans(skb, dev); | 503 | skb->protocol = eth_type_trans(skb, dev); |
504 | skb_len = skb->len; | 504 | skb_len = skb->len; |
505 | if (netif_rx(skb) == NET_RX_SUCCESS) { | 505 | if (netif_rx(skb) == NET_RX_SUCCESS) { |
diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c index 65a285631994..72baedefa0f1 100644 --- a/drivers/staging/octeon/ethernet-rx.c +++ b/drivers/staging/octeon/ethernet-rx.c | |||
@@ -287,8 +287,7 @@ static int cvm_oct_poll(struct oct_rx_group *rx_group, int budget) | |||
287 | else | 287 | else |
288 | ptr += 6; | 288 | ptr += 6; |
289 | } | 289 | } |
290 | memcpy(skb_put(skb, work->word1.len), ptr, | 290 | skb_put_data(skb, ptr, work->word1.len); |
291 | work->word1.len); | ||
292 | /* No packet buffers to free */ | 291 | /* No packet buffers to free */ |
293 | } else { | 292 | } else { |
294 | int segments = work->word2.s.bufs; | 293 | int segments = work->word2.s.bufs; |
@@ -323,10 +322,9 @@ static int cvm_oct_poll(struct oct_rx_group *rx_group, int budget) | |||
323 | if (segment_size > len) | 322 | if (segment_size > len) |
324 | segment_size = len; | 323 | segment_size = len; |
325 | /* Copy the data into the packet */ | 324 | /* Copy the data into the packet */ |
326 | memcpy(skb_put(skb, segment_size), | 325 | skb_put_data(skb, |
327 | cvmx_phys_to_ptr( | 326 | cvmx_phys_to_ptr(segment_ptr.s.addr), |
328 | segment_ptr.s.addr), | 327 | segment_size); |
329 | segment_size); | ||
330 | len -= segment_size; | 328 | len -= segment_size; |
331 | segment_ptr = next_ptr; | 329 | segment_ptr = next_ptr; |
332 | } | 330 | } |
diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c b/drivers/staging/rtl8188eu/core/rtw_recv.c index c6c4404e717b..14173cf6e1e7 100644 --- a/drivers/staging/rtl8188eu/core/rtw_recv.c +++ b/drivers/staging/rtl8188eu/core/rtw_recv.c | |||
@@ -1544,8 +1544,8 @@ static int amsdu_to_msdu(struct adapter *padapter, struct recv_frame *prframe) | |||
1544 | sub_skb = dev_alloc_skb(nSubframe_Length + 12); | 1544 | sub_skb = dev_alloc_skb(nSubframe_Length + 12); |
1545 | if (sub_skb) { | 1545 | if (sub_skb) { |
1546 | skb_reserve(sub_skb, 12); | 1546 | skb_reserve(sub_skb, 12); |
1547 | data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length); | 1547 | data_ptr = skb_put_data(sub_skb, pdata, |
1548 | memcpy(data_ptr, pdata, nSubframe_Length); | 1548 | nSubframe_Length); |
1549 | } else { | 1549 | } else { |
1550 | sub_skb = skb_clone(prframe->pkt, GFP_ATOMIC); | 1550 | sub_skb = skb_clone(prframe->pkt, GFP_ATOMIC); |
1551 | if (sub_skb) { | 1551 | if (sub_skb) { |
diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c b/drivers/staging/rtl8188eu/os_dep/mon.c index 859d0d6051cd..225c23fc69dc 100644 --- a/drivers/staging/rtl8188eu/os_dep/mon.c +++ b/drivers/staging/rtl8188eu/os_dep/mon.c | |||
@@ -53,7 +53,7 @@ static void mon_recv_decrypted(struct net_device *dev, const u8 *data, | |||
53 | skb = netdev_alloc_skb(dev, data_len); | 53 | skb = netdev_alloc_skb(dev, data_len); |
54 | if (!skb) | 54 | if (!skb) |
55 | return; | 55 | return; |
56 | memcpy(skb_put(skb, data_len), data, data_len); | 56 | skb_put_data(skb, data, data_len); |
57 | 57 | ||
58 | /* | 58 | /* |
59 | * Frame data is not encrypted. Strip off protection so | 59 | * Frame data is not encrypted. Strip off protection so |
diff --git a/drivers/staging/rtl8192e/rtllib_rx.c b/drivers/staging/rtl8192e/rtllib_rx.c index 43a77745e6fb..bae98ca0a9b6 100644 --- a/drivers/staging/rtl8192e/rtllib_rx.c +++ b/drivers/staging/rtl8192e/rtllib_rx.c | |||
@@ -817,8 +817,7 @@ static u8 parse_subframe(struct rtllib_device *ieee, struct sk_buff *skb, | |||
817 | if (!sub_skb) | 817 | if (!sub_skb) |
818 | return 0; | 818 | return 0; |
819 | skb_reserve(sub_skb, 12); | 819 | skb_reserve(sub_skb, 12); |
820 | data_ptr = (u8 *)skb_put(sub_skb, skb->len); | 820 | data_ptr = skb_put_data(sub_skb, skb->data, skb->len); |
821 | memcpy(data_ptr, skb->data, skb->len); | ||
822 | sub_skb->dev = ieee->dev; | 821 | sub_skb->dev = ieee->dev; |
823 | 822 | ||
824 | rxb->subframes[0] = sub_skb; | 823 | rxb->subframes[0] = sub_skb; |
@@ -870,8 +869,7 @@ static u8 parse_subframe(struct rtllib_device *ieee, struct sk_buff *skb, | |||
870 | if (!sub_skb) | 869 | if (!sub_skb) |
871 | return 0; | 870 | return 0; |
872 | skb_reserve(sub_skb, 12); | 871 | skb_reserve(sub_skb, 12); |
873 | data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length); | 872 | data_ptr = skb_put_data(sub_skb, skb->data, nSubframe_Length); |
874 | memcpy(data_ptr, skb->data, nSubframe_Length); | ||
875 | 873 | ||
876 | sub_skb->dev = ieee->dev; | 874 | sub_skb->dev = ieee->dev; |
877 | rxb->subframes[rxb->nr_subframes++] = sub_skb; | 875 | rxb->subframes[rxb->nr_subframes++] = sub_skb; |
@@ -1141,13 +1139,12 @@ static int rtllib_rx_decrypt(struct rtllib_device *ieee, struct sk_buff *skb, | |||
1141 | /* copy first fragment (including full headers) into | 1139 | /* copy first fragment (including full headers) into |
1142 | * beginning of the fragment cache skb | 1140 | * beginning of the fragment cache skb |
1143 | */ | 1141 | */ |
1144 | memcpy(skb_put(frag_skb, flen), skb->data, flen); | 1142 | skb_put_data(frag_skb, skb->data, flen); |
1145 | } else { | 1143 | } else { |
1146 | /* append frame payload to the end of the fragment | 1144 | /* append frame payload to the end of the fragment |
1147 | * cache skb | 1145 | * cache skb |
1148 | */ | 1146 | */ |
1149 | memcpy(skb_put(frag_skb, flen), skb->data + hdrlen, | 1147 | skb_put_data(frag_skb, skb->data + hdrlen, flen); |
1150 | flen); | ||
1151 | } | 1148 | } |
1152 | dev_kfree_skb_any(skb); | 1149 | dev_kfree_skb_any(skb); |
1153 | skb = NULL; | 1150 | skb = NULL; |
diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c index eeda17d6409b..60d07d0bb4eb 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c | |||
@@ -1272,8 +1272,7 @@ rtllib_association_req(struct rtllib_network *beacon, | |||
1272 | hdr->info_element[0].id = MFIE_TYPE_SSID; | 1272 | hdr->info_element[0].id = MFIE_TYPE_SSID; |
1273 | 1273 | ||
1274 | hdr->info_element[0].len = beacon->ssid_len; | 1274 | hdr->info_element[0].len = beacon->ssid_len; |
1275 | tag = skb_put(skb, beacon->ssid_len); | 1275 | tag = skb_put_data(skb, beacon->ssid, beacon->ssid_len); |
1276 | memcpy(tag, beacon->ssid, beacon->ssid_len); | ||
1277 | 1276 | ||
1278 | tag = skb_put(skb, rate_len); | 1277 | tag = skb_put(skb, rate_len); |
1279 | 1278 | ||
@@ -1349,8 +1348,7 @@ rtllib_association_req(struct rtllib_network *beacon, | |||
1349 | } | 1348 | } |
1350 | 1349 | ||
1351 | if (wpa_ie_len) { | 1350 | if (wpa_ie_len) { |
1352 | tag = skb_put(skb, ieee->wpa_ie_len); | 1351 | tag = skb_put_data(skb, ieee->wpa_ie, ieee->wpa_ie_len); |
1353 | memcpy(tag, ieee->wpa_ie, ieee->wpa_ie_len); | ||
1354 | 1352 | ||
1355 | if (PMKCacheIdx >= 0) { | 1353 | if (PMKCacheIdx >= 0) { |
1356 | tag = skb_put(skb, 18); | 1354 | tag = skb_put(skb, 18); |
@@ -1366,8 +1364,7 @@ rtllib_association_req(struct rtllib_network *beacon, | |||
1366 | } | 1364 | } |
1367 | 1365 | ||
1368 | if (wps_ie_len && ieee->wps_ie) { | 1366 | if (wps_ie_len && ieee->wps_ie) { |
1369 | tag = skb_put(skb, wps_ie_len); | 1367 | tag = skb_put_data(skb, ieee->wps_ie, wps_ie_len); |
1370 | memcpy(tag, ieee->wps_ie, wps_ie_len); | ||
1371 | } | 1368 | } |
1372 | 1369 | ||
1373 | tag = skb_put(skb, turbo_info_len); | 1370 | tag = skb_put(skb, turbo_info_len); |
diff --git a/drivers/staging/rtl8192e/rtllib_tx.c b/drivers/staging/rtl8192e/rtllib_tx.c index 78a3ad5b231f..fc88d47dea43 100644 --- a/drivers/staging/rtl8192e/rtllib_tx.c +++ b/drivers/staging/rtl8192e/rtllib_tx.c | |||
@@ -624,8 +624,7 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) | |||
624 | 624 | ||
625 | txb->encrypted = 0; | 625 | txb->encrypted = 0; |
626 | txb->payload_size = cpu_to_le16(skb->len); | 626 | txb->payload_size = cpu_to_le16(skb->len); |
627 | memcpy(skb_put(txb->fragments[0], skb->len), skb->data, | 627 | skb_put_data(txb->fragments[0], skb->data, skb->len); |
628 | skb->len); | ||
629 | 628 | ||
630 | goto success; | 629 | goto success; |
631 | } | 630 | } |
@@ -818,9 +817,7 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) | |||
818 | } else { | 817 | } else { |
819 | tcb_desc->bHwSec = 0; | 818 | tcb_desc->bHwSec = 0; |
820 | } | 819 | } |
821 | frag_hdr = (struct rtllib_hdr_3addrqos *) | 820 | frag_hdr = skb_put_data(skb_frag, &header, hdr_len); |
822 | skb_put(skb_frag, hdr_len); | ||
823 | memcpy(frag_hdr, &header, hdr_len); | ||
824 | 821 | ||
825 | /* If this is not the last fragment, then add the | 822 | /* If this is not the last fragment, then add the |
826 | * MOREFRAGS bit to the frame control | 823 | * MOREFRAGS bit to the frame control |
@@ -852,7 +849,7 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) | |||
852 | bytes -= SNAP_SIZE + sizeof(u16); | 849 | bytes -= SNAP_SIZE + sizeof(u16); |
853 | } | 850 | } |
854 | 851 | ||
855 | memcpy(skb_put(skb_frag, bytes), skb->data, bytes); | 852 | skb_put_data(skb_frag, skb->data, bytes); |
856 | 853 | ||
857 | /* Advance the SKB... */ | 854 | /* Advance the SKB... */ |
858 | skb_pull(skb, bytes); | 855 | skb_pull(skb, bytes); |
@@ -895,8 +892,7 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) | |||
895 | 892 | ||
896 | txb->encrypted = 0; | 893 | txb->encrypted = 0; |
897 | txb->payload_size = cpu_to_le16(skb->len); | 894 | txb->payload_size = cpu_to_le16(skb->len); |
898 | memcpy(skb_put(txb->fragments[0], skb->len), skb->data, | 895 | skb_put_data(txb->fragments[0], skb->data, skb->len); |
899 | skb->len); | ||
900 | } | 896 | } |
901 | 897 | ||
902 | success: | 898 | success: |
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c index 7a31510f0524..c0e2f711cb4e 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | |||
@@ -848,8 +848,8 @@ static u8 parse_subframe(struct sk_buff *skb, | |||
848 | if (!sub_skb) | 848 | if (!sub_skb) |
849 | return 0; | 849 | return 0; |
850 | skb_reserve(sub_skb, 12); | 850 | skb_reserve(sub_skb, 12); |
851 | data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length); | 851 | data_ptr = skb_put_data(sub_skb, skb->data, |
852 | memcpy(data_ptr, skb->data, nSubframe_Length); | 852 | nSubframe_Length); |
853 | #endif | 853 | #endif |
854 | rxb->subframes[rxb->nr_subframes++] = sub_skb; | 854 | rxb->subframes[rxb->nr_subframes++] = sub_skb; |
855 | if (rxb->nr_subframes >= MAX_SUBFRAME_COUNT) { | 855 | if (rxb->nr_subframes >= MAX_SUBFRAME_COUNT) { |
@@ -1180,12 +1180,11 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb, | |||
1180 | if (frag == 0) { | 1180 | if (frag == 0) { |
1181 | /* copy first fragment (including full headers) into | 1181 | /* copy first fragment (including full headers) into |
1182 | * beginning of the fragment cache skb */ | 1182 | * beginning of the fragment cache skb */ |
1183 | memcpy(skb_put(frag_skb, flen), skb->data, flen); | 1183 | skb_put_data(frag_skb, skb->data, flen); |
1184 | } else { | 1184 | } else { |
1185 | /* append frame payload to the end of the fragment | 1185 | /* append frame payload to the end of the fragment |
1186 | * cache skb */ | 1186 | * cache skb */ |
1187 | memcpy(skb_put(frag_skb, flen), skb->data + hdrlen, | 1187 | skb_put_data(frag_skb, skb->data + hdrlen, flen); |
1188 | flen); | ||
1189 | } | 1188 | } |
1190 | dev_kfree_skb_any(skb); | 1189 | dev_kfree_skb_any(skb); |
1191 | skb = NULL; | 1190 | skb = NULL; |
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index 14aea26804f4..903a1d0269df 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | |||
@@ -1115,8 +1115,7 @@ ieee80211_association_req(struct ieee80211_network *beacon, | |||
1115 | hdr->info_element[0].id = MFIE_TYPE_SSID; | 1115 | hdr->info_element[0].id = MFIE_TYPE_SSID; |
1116 | 1116 | ||
1117 | hdr->info_element[0].len = beacon->ssid_len; | 1117 | hdr->info_element[0].len = beacon->ssid_len; |
1118 | tag = skb_put(skb, beacon->ssid_len); | 1118 | tag = skb_put_data(skb, beacon->ssid, beacon->ssid_len); |
1119 | memcpy(tag, beacon->ssid, beacon->ssid_len); | ||
1120 | 1119 | ||
1121 | tag = skb_put(skb, rate_len); | 1120 | tag = skb_put(skb, rate_len); |
1122 | 1121 | ||
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c index bdb96a45a9eb..f58971a4a2e3 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c | |||
@@ -794,8 +794,7 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev) | |||
794 | { | 794 | { |
795 | tcb_desc->bHwSec = 0; | 795 | tcb_desc->bHwSec = 0; |
796 | } | 796 | } |
797 | frag_hdr = (struct rtl_80211_hdr_3addrqos *)skb_put(skb_frag, hdr_len); | 797 | frag_hdr = skb_put_data(skb_frag, &header, hdr_len); |
798 | memcpy(frag_hdr, &header, hdr_len); | ||
799 | 798 | ||
800 | /* If this is not the last fragment, then add the MOREFRAGS | 799 | /* If this is not the last fragment, then add the MOREFRAGS |
801 | * bit to the frame control | 800 | * bit to the frame control |
@@ -826,7 +825,7 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev) | |||
826 | bytes -= SNAP_SIZE + sizeof(u16); | 825 | bytes -= SNAP_SIZE + sizeof(u16); |
827 | } | 826 | } |
828 | 827 | ||
829 | memcpy(skb_put(skb_frag, bytes), skb->data, bytes); | 828 | skb_put_data(skb_frag, skb->data, bytes); |
830 | 829 | ||
831 | /* Advance the SKB... */ | 830 | /* Advance the SKB... */ |
832 | skb_pull(skb, bytes); | 831 | skb_pull(skb, bytes); |
@@ -869,7 +868,7 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev) | |||
869 | 868 | ||
870 | txb->encrypted = 0; | 869 | txb->encrypted = 0; |
871 | txb->payload_size = __cpu_to_le16(skb->len); | 870 | txb->payload_size = __cpu_to_le16(skb->len); |
872 | memcpy(skb_put(txb->fragments[0],skb->len), skb->data, skb->len); | 871 | skb_put_data(txb->fragments[0], skb->data, skb->len); |
873 | } | 872 | } |
874 | 873 | ||
875 | success: | 874 | success: |
diff --git a/drivers/staging/rtl8192u/r819xU_cmdpkt.c b/drivers/staging/rtl8192u/r819xU_cmdpkt.c index bb6d8bd6c7ac..c3cf01c842a3 100644 --- a/drivers/staging/rtl8192u/r819xU_cmdpkt.c +++ b/drivers/staging/rtl8192u/r819xU_cmdpkt.c | |||
@@ -45,8 +45,7 @@ rt_status SendTxCommandPacket(struct net_device *dev, void *pData, u32 DataLen) | |||
45 | tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_NORMAL; | 45 | tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_NORMAL; |
46 | tcb_desc->bLastIniPkt = 0; | 46 | tcb_desc->bLastIniPkt = 0; |
47 | skb_reserve(skb, USB_HWDESC_HEADER_LEN); | 47 | skb_reserve(skb, USB_HWDESC_HEADER_LEN); |
48 | ptr_buf = skb_put(skb, DataLen); | 48 | ptr_buf = skb_put_data(skb, pData, DataLen); |
49 | memcpy(ptr_buf, pData, DataLen); | ||
50 | tcb_desc->txbuf_size = (u16)DataLen; | 49 | tcb_desc->txbuf_size = (u16)DataLen; |
51 | 50 | ||
52 | if (!priv->ieee80211->check_nic_enough_desc(dev, tcb_desc->queue_index) || | 51 | if (!priv->ieee80211->check_nic_enough_desc(dev, tcb_desc->queue_index) || |
diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index 266ffefd55ed..f96c558b3c6a 100644 --- a/drivers/staging/rtl8712/rtl8712_recv.c +++ b/drivers/staging/rtl8712/rtl8712_recv.c | |||
@@ -372,8 +372,7 @@ static int amsdu_to_msdu(struct _adapter *padapter, union recv_frame *prframe) | |||
372 | if (!sub_skb) | 372 | if (!sub_skb) |
373 | break; | 373 | break; |
374 | skb_reserve(sub_skb, 12); | 374 | skb_reserve(sub_skb, 12); |
375 | data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length); | 375 | data_ptr = skb_put_data(sub_skb, pdata, nSubframe_Length); |
376 | memcpy(data_ptr, pdata, nSubframe_Length); | ||
377 | subframes[nr_subframes++] = sub_skb; | 376 | subframes[nr_subframes++] = sub_skb; |
378 | if (nr_subframes >= MAX_SUBFRAME_COUNT) { | 377 | if (nr_subframes >= MAX_SUBFRAME_COUNT) { |
379 | netdev_warn(padapter->pnetdev, "r8712u: ParseSubframe(): Too many Subframes! Packets dropped!\n"); | 378 | netdev_warn(padapter->pnetdev, "r8712u: ParseSubframe(): Too many Subframes! Packets dropped!\n"); |
diff --git a/drivers/staging/rtl8723bs/os_dep/recv_linux.c b/drivers/staging/rtl8723bs/os_dep/recv_linux.c index e731ab4e2bd7..1a6443dc3ff0 100644 --- a/drivers/staging/rtl8723bs/os_dep/recv_linux.c +++ b/drivers/staging/rtl8723bs/os_dep/recv_linux.c | |||
@@ -82,8 +82,8 @@ _pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, u16 nSubframe_Length, u8 | |||
82 | if (sub_skb) | 82 | if (sub_skb) |
83 | { | 83 | { |
84 | skb_reserve(sub_skb, 12); | 84 | skb_reserve(sub_skb, 12); |
85 | data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length); | 85 | data_ptr = skb_put_data(sub_skb, (pdata + ETH_HLEN), |
86 | memcpy(data_ptr, (pdata + ETH_HLEN), nSubframe_Length); | 86 | nSubframe_Length); |
87 | } | 87 | } |
88 | else | 88 | else |
89 | { | 89 | { |
diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index c9782d452b07..dbc266a37974 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c | |||
@@ -72,7 +72,7 @@ void WILC_WFI_monitor_rx(u8 *buff, u32 size) | |||
72 | if (!skb) | 72 | if (!skb) |
73 | return; | 73 | return; |
74 | 74 | ||
75 | memcpy(skb_put(skb, size), buff, size); | 75 | skb_put_data(skb, buff, size); |
76 | 76 | ||
77 | cb_hdr = (struct wilc_wfi_radiotap_cb_hdr *)skb_push(skb, sizeof(*cb_hdr)); | 77 | cb_hdr = (struct wilc_wfi_radiotap_cb_hdr *)skb_push(skb, sizeof(*cb_hdr)); |
78 | memset(cb_hdr, 0, sizeof(struct wilc_wfi_radiotap_cb_hdr)); | 78 | memset(cb_hdr, 0, sizeof(struct wilc_wfi_radiotap_cb_hdr)); |
@@ -100,7 +100,7 @@ void WILC_WFI_monitor_rx(u8 *buff, u32 size) | |||
100 | if (!skb) | 100 | if (!skb) |
101 | return; | 101 | return; |
102 | 102 | ||
103 | memcpy(skb_put(skb, size), buff, size); | 103 | skb_put_data(skb, buff, size); |
104 | hdr = (struct wilc_wfi_radiotap_hdr *)skb_push(skb, sizeof(*hdr)); | 104 | hdr = (struct wilc_wfi_radiotap_hdr *)skb_push(skb, sizeof(*hdr)); |
105 | memset(hdr, 0, sizeof(struct wilc_wfi_radiotap_hdr)); | 105 | memset(hdr, 0, sizeof(struct wilc_wfi_radiotap_hdr)); |
106 | hdr->hdr.it_version = 0; /* PKTHDR_RADIOTAP_VERSION; */ | 106 | hdr->hdr.it_version = 0; /* PKTHDR_RADIOTAP_VERSION; */ |
@@ -200,7 +200,7 @@ static netdev_tx_t WILC_WFI_mon_xmit(struct sk_buff *skb, | |||
200 | if (!skb2) | 200 | if (!skb2) |
201 | return -ENOMEM; | 201 | return -ENOMEM; |
202 | 202 | ||
203 | memcpy(skb_put(skb2, skb->len), skb->data, skb->len); | 203 | skb_put_data(skb2, skb->data, skb->len); |
204 | 204 | ||
205 | cb_hdr = (struct wilc_wfi_radiotap_cb_hdr *)skb_push(skb2, sizeof(*cb_hdr)); | 205 | cb_hdr = (struct wilc_wfi_radiotap_cb_hdr *)skb_push(skb2, sizeof(*cb_hdr)); |
206 | memset(cb_hdr, 0, sizeof(struct wilc_wfi_radiotap_cb_hdr)); | 206 | memset(cb_hdr, 0, sizeof(struct wilc_wfi_radiotap_cb_hdr)); |
diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d6d803416be2..f36598a89ce0 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c | |||
@@ -1160,7 +1160,7 @@ void wilc_frmw_to_linux(struct wilc *wilc, u8 *buff, u32 size, u32 pkt_offset) | |||
1160 | 1160 | ||
1161 | skb->dev = wilc_netdev; | 1161 | skb->dev = wilc_netdev; |
1162 | 1162 | ||
1163 | memcpy(skb_put(skb, frame_len), buff_to_send, frame_len); | 1163 | skb_put_data(skb, buff_to_send, frame_len); |
1164 | 1164 | ||
1165 | skb->protocol = eth_type_trans(skb, wilc_netdev); | 1165 | skb->protocol = eth_type_trans(skb, wilc_netdev); |
1166 | vif->netstats.rx_packets++; | 1166 | vif->netstats.rx_packets++; |
diff --git a/drivers/staging/wlan-ng/hfa384x_usb.c b/drivers/staging/wlan-ng/hfa384x_usb.c index a812e55ba1b0..1de67f209f2c 100644 --- a/drivers/staging/wlan-ng/hfa384x_usb.c +++ b/drivers/staging/wlan-ng/hfa384x_usb.c | |||
@@ -3530,13 +3530,11 @@ static void hfa384x_int_rxmonitor(struct wlandevice *wlandev, | |||
3530 | /* Copy the 802.11 header to the skb | 3530 | /* Copy the 802.11 header to the skb |
3531 | * (ctl frames may be less than a full header) | 3531 | * (ctl frames may be less than a full header) |
3532 | */ | 3532 | */ |
3533 | datap = skb_put(skb, hdrlen); | 3533 | datap = skb_put_data(skb, &rxdesc->frame_control, hdrlen); |
3534 | memcpy(datap, &rxdesc->frame_control, hdrlen); | ||
3535 | 3534 | ||
3536 | /* If any, copy the data from the card to the skb */ | 3535 | /* If any, copy the data from the card to the skb */ |
3537 | if (datalen > 0) { | 3536 | if (datalen > 0) { |
3538 | datap = skb_put(skb, datalen); | 3537 | datap = skb_put_data(skb, rxfrm->data, datalen); |
3539 | memcpy(datap, rxfrm->data, datalen); | ||
3540 | 3538 | ||
3541 | /* check for unencrypted stuff if WEP bit set. */ | 3539 | /* check for unencrypted stuff if WEP bit set. */ |
3542 | if (*(datap - hdrlen + 1) & 0x40) /* wep set */ | 3540 | if (*(datap - hdrlen + 1) & 0x40) /* wep set */ |
diff --git a/drivers/tty/ipwireless/network.c b/drivers/tty/ipwireless/network.c index c0dfb642383b..c2f9a3263b37 100644 --- a/drivers/tty/ipwireless/network.c +++ b/drivers/tty/ipwireless/network.c | |||
@@ -355,7 +355,7 @@ static struct sk_buff *ipw_packet_received_skb(unsigned char *data, | |||
355 | if (skb == NULL) | 355 | if (skb == NULL) |
356 | return NULL; | 356 | return NULL; |
357 | skb_reserve(skb, 2); | 357 | skb_reserve(skb, 2); |
358 | memcpy(skb_put(skb, length), data, length); | 358 | skb_put_data(skb, data, length); |
359 | 359 | ||
360 | return skb; | 360 | return skb; |
361 | } | 361 | } |
diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index 2667a205a5ab..da830f833392 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c | |||
@@ -2688,7 +2688,7 @@ static void gsm_mux_rx_netchar(struct gsm_dlci *dlci, | |||
2688 | return; | 2688 | return; |
2689 | } | 2689 | } |
2690 | skb_reserve(skb, NET_IP_ALIGN); | 2690 | skb_reserve(skb, NET_IP_ALIGN); |
2691 | memcpy(skb_put(skb, size), in_buf, size); | 2691 | skb_put_data(skb, in_buf, size); |
2692 | 2692 | ||
2693 | skb->dev = net; | 2693 | skb->dev = net; |
2694 | skb->protocol = htons(ETH_P_IP); | 2694 | skb->protocol = htons(ETH_P_IP); |
diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c index a2c308f7d637..3fafc5a1b2e0 100644 --- a/drivers/tty/synclink.c +++ b/drivers/tty/synclink.c | |||
@@ -7960,7 +7960,7 @@ static void hdlcdev_rx(struct mgsl_struct *info, char *buf, int size) | |||
7960 | return; | 7960 | return; |
7961 | } | 7961 | } |
7962 | 7962 | ||
7963 | memcpy(skb_put(skb, size), buf, size); | 7963 | skb_put_data(skb, buf, size); |
7964 | 7964 | ||
7965 | skb->protocol = hdlc_type_trans(skb, dev); | 7965 | skb->protocol = hdlc_type_trans(skb, dev); |
7966 | 7966 | ||
diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c index 31885f20fc15..7e947ecf15f1 100644 --- a/drivers/tty/synclink_gt.c +++ b/drivers/tty/synclink_gt.c | |||
@@ -1755,7 +1755,7 @@ static void hdlcdev_rx(struct slgt_info *info, char *buf, int size) | |||
1755 | return; | 1755 | return; |
1756 | } | 1756 | } |
1757 | 1757 | ||
1758 | memcpy(skb_put(skb, size), buf, size); | 1758 | skb_put_data(skb, buf, size); |
1759 | 1759 | ||
1760 | skb->protocol = hdlc_type_trans(skb, dev); | 1760 | skb->protocol = hdlc_type_trans(skb, dev); |
1761 | 1761 | ||
diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c index 51e8846cd68f..9b4fb0251c1a 100644 --- a/drivers/tty/synclinkmp.c +++ b/drivers/tty/synclinkmp.c | |||
@@ -1874,7 +1874,7 @@ static void hdlcdev_rx(SLMP_INFO *info, char *buf, int size) | |||
1874 | return; | 1874 | return; |
1875 | } | 1875 | } |
1876 | 1876 | ||
1877 | memcpy(skb_put(skb, size), buf, size); | 1877 | skb_put_data(skb, buf, size); |
1878 | 1878 | ||
1879 | skb->protocol = hdlc_type_trans(skb, dev); | 1879 | skb->protocol = hdlc_type_trans(skb, dev); |
1880 | 1880 | ||
diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c index 2882c6d3ae66..630616aaa861 100644 --- a/drivers/usb/gadget/function/f_ncm.c +++ b/drivers/usb/gadget/function/f_ncm.c | |||
@@ -1007,8 +1007,8 @@ static struct sk_buff *package_for_tx(struct f_ncm *ncm) | |||
1007 | ntb_iter = skb_put_zero(skb2, ndp_pad); | 1007 | ntb_iter = skb_put_zero(skb2, ndp_pad); |
1008 | 1008 | ||
1009 | /* Copy NTB across. */ | 1009 | /* Copy NTB across. */ |
1010 | ntb_iter = (void *) skb_put(skb2, ncm->skb_tx_ndp->len); | 1010 | ntb_iter = skb_put_data(skb2, ncm->skb_tx_ndp->data, |
1011 | memcpy(ntb_iter, ncm->skb_tx_ndp->data, ncm->skb_tx_ndp->len); | 1011 | ncm->skb_tx_ndp->len); |
1012 | dev_consume_skb_any(ncm->skb_tx_ndp); | 1012 | dev_consume_skb_any(ncm->skb_tx_ndp); |
1013 | ncm->skb_tx_ndp = NULL; | 1013 | ncm->skb_tx_ndp = NULL; |
1014 | 1014 | ||
@@ -1129,8 +1129,7 @@ static struct sk_buff *ncm_wrap_ntb(struct gether *port, | |||
1129 | 1129 | ||
1130 | /* Add the new data to the skb */ | 1130 | /* Add the new data to the skb */ |
1131 | ntb_data = skb_put_zero(ncm->skb_tx_data, dgram_pad); | 1131 | ntb_data = skb_put_zero(ncm->skb_tx_data, dgram_pad); |
1132 | ntb_data = (void *) skb_put(ncm->skb_tx_data, skb->len); | 1132 | ntb_data = skb_put_data(ncm->skb_tx_data, skb->data, skb->len); |
1133 | memcpy(ntb_data, skb->data, skb->len); | ||
1134 | dev_consume_skb_any(skb); | 1133 | dev_consume_skb_any(skb); |
1135 | skb = NULL; | 1134 | skb = NULL; |
1136 | 1135 | ||
@@ -1313,8 +1312,8 @@ static int ncm_unwrap_ntb(struct gether *port, | |||
1313 | dg_len - crc_len); | 1312 | dg_len - crc_len); |
1314 | if (skb2 == NULL) | 1313 | if (skb2 == NULL) |
1315 | goto err; | 1314 | goto err; |
1316 | memcpy(skb_put(skb2, dg_len - crc_len), | 1315 | skb_put_data(skb2, skb->data + index, |
1317 | skb->data + index, dg_len - crc_len); | 1316 | dg_len - crc_len); |
1318 | 1317 | ||
1319 | skb_queue_tail(list, skb2); | 1318 | skb_queue_tail(list, skb2); |
1320 | 1319 | ||
diff --git a/drivers/usb/gadget/function/f_phonet.c b/drivers/usb/gadget/function/f_phonet.c index 6a1ce6a55158..9c4c58e4a1a2 100644 --- a/drivers/usb/gadget/function/f_phonet.c +++ b/drivers/usb/gadget/function/f_phonet.c | |||
@@ -336,7 +336,7 @@ static void pn_rx_complete(struct usb_ep *ep, struct usb_request *req) | |||
336 | skb->protocol = htons(ETH_P_PHONET); | 336 | skb->protocol = htons(ETH_P_PHONET); |
337 | skb_reset_mac_header(skb); | 337 | skb_reset_mac_header(skb); |
338 | /* Can't use pskb_pull() on page in IRQ */ | 338 | /* Can't use pskb_pull() on page in IRQ */ |
339 | memcpy(skb_put(skb, 1), page_address(page), 1); | 339 | skb_put_data(skb, page_address(page), 1); |
340 | } | 340 | } |
341 | 341 | ||
342 | skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, | 342 | skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, |
diff --git a/include/linux/mISDNif.h b/include/linux/mISDNif.h index ac02c54520e9..a7330eb3ec64 100644 --- a/include/linux/mISDNif.h +++ b/include/linux/mISDNif.h | |||
@@ -554,7 +554,7 @@ _alloc_mISDN_skb(u_int prim, u_int id, u_int len, void *dp, gfp_t gfp_mask) | |||
554 | if (!skb) | 554 | if (!skb) |
555 | return NULL; | 555 | return NULL; |
556 | if (len) | 556 | if (len) |
557 | memcpy(skb_put(skb, len), dp, len); | 557 | skb_put_data(skb, dp, len); |
558 | hh = mISDN_HEAD_P(skb); | 558 | hh = mISDN_HEAD_P(skb); |
559 | hh->prim = prim; | 559 | hh->prim = prim; |
560 | hh->id = id; | 560 | hh->id = id; |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 01ea64d0783a..5af5385a0e72 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -1913,6 +1913,16 @@ static inline void *skb_put_zero(struct sk_buff *skb, unsigned int len) | |||
1913 | return tmp; | 1913 | return tmp; |
1914 | } | 1914 | } |
1915 | 1915 | ||
1916 | static inline void *skb_put_data(struct sk_buff *skb, const void *data, | ||
1917 | unsigned int len) | ||
1918 | { | ||
1919 | void *tmp = skb_put(skb, len); | ||
1920 | |||
1921 | memcpy(tmp, data, len); | ||
1922 | |||
1923 | return tmp; | ||
1924 | } | ||
1925 | |||
1916 | unsigned char *skb_push(struct sk_buff *skb, unsigned int len); | 1926 | unsigned char *skb_push(struct sk_buff *skb, unsigned int len); |
1917 | static inline unsigned char *__skb_push(struct sk_buff *skb, unsigned int len) | 1927 | static inline unsigned char *__skb_push(struct sk_buff *skb, unsigned int len) |
1918 | { | 1928 | { |
diff --git a/lib/nlattr.c b/lib/nlattr.c index d09d9746fc5d..ab15a6c095d3 100644 --- a/lib/nlattr.c +++ b/lib/nlattr.c | |||
@@ -616,7 +616,7 @@ int nla_append(struct sk_buff *skb, int attrlen, const void *data) | |||
616 | if (unlikely(skb_tailroom(skb) < NLA_ALIGN(attrlen))) | 616 | if (unlikely(skb_tailroom(skb) < NLA_ALIGN(attrlen))) |
617 | return -EMSGSIZE; | 617 | return -EMSGSIZE; |
618 | 618 | ||
619 | memcpy(skb_put(skb, attrlen), data, attrlen); | 619 | skb_put_data(skb, data, attrlen); |
620 | return 0; | 620 | return 0; |
621 | } | 621 | } |
622 | EXPORT_SYMBOL(nla_append); | 622 | EXPORT_SYMBOL(nla_append); |
diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c index fa8d6b475c06..a3501173e200 100644 --- a/net/batman-adv/bat_iv_ogm.c +++ b/net/batman-adv/bat_iv_ogm.c | |||
@@ -732,8 +732,8 @@ static void batadv_iv_ogm_aggregate(struct batadv_forw_packet *forw_packet_aggr, | |||
732 | unsigned char *skb_buff; | 732 | unsigned char *skb_buff; |
733 | unsigned long new_direct_link_flag; | 733 | unsigned long new_direct_link_flag; |
734 | 734 | ||
735 | skb_buff = skb_put(forw_packet_aggr->skb, packet_len); | 735 | skb_buff = skb_put_data(forw_packet_aggr->skb, packet_buff, |
736 | memcpy(skb_buff, packet_buff, packet_len); | 736 | packet_len); |
737 | forw_packet_aggr->packet_len += packet_len; | 737 | forw_packet_aggr->packet_len += packet_len; |
738 | forw_packet_aggr->num_packets++; | 738 | forw_packet_aggr->num_packets++; |
739 | 739 | ||
diff --git a/net/batman-adv/bat_v_ogm.c b/net/batman-adv/bat_v_ogm.c index 03a35c9f456d..1e3dc374bfde 100644 --- a/net/batman-adv/bat_v_ogm.c +++ b/net/batman-adv/bat_v_ogm.c | |||
@@ -166,8 +166,7 @@ static void batadv_v_ogm_send(struct work_struct *work) | |||
166 | goto reschedule; | 166 | goto reschedule; |
167 | 167 | ||
168 | skb_reserve(skb, ETH_HLEN); | 168 | skb_reserve(skb, ETH_HLEN); |
169 | pkt_buff = skb_put(skb, ogm_buff_len); | 169 | pkt_buff = skb_put_data(skb, ogm_buff, ogm_buff_len); |
170 | memcpy(pkt_buff, ogm_buff, ogm_buff_len); | ||
171 | 170 | ||
172 | ogm_packet = (struct batadv_ogm2_packet *)skb->data; | 171 | ogm_packet = (struct batadv_ogm2_packet *)skb->data; |
173 | ogm_packet->seqno = htonl(atomic_read(&bat_priv->bat_v.ogm_seqno)); | 172 | ogm_packet->seqno = htonl(atomic_read(&bat_priv->bat_v.ogm_seqno)); |
@@ -382,8 +381,7 @@ static void batadv_v_ogm_forward(struct batadv_priv *bat_priv, | |||
382 | goto out; | 381 | goto out; |
383 | 382 | ||
384 | skb_reserve(skb, ETH_HLEN); | 383 | skb_reserve(skb, ETH_HLEN); |
385 | skb_buff = skb_put(skb, packet_len); | 384 | skb_buff = skb_put_data(skb, ogm_received, packet_len); |
386 | memcpy(skb_buff, ogm_received, packet_len); | ||
387 | 385 | ||
388 | /* apply forward penalty */ | 386 | /* apply forward penalty */ |
389 | ogm_forward = (struct batadv_ogm2_packet *)skb_buff; | 387 | ogm_forward = (struct batadv_ogm2_packet *)skb_buff; |
diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c index 8f964beaac28..a98cf1104a30 100644 --- a/net/batman-adv/fragmentation.c +++ b/net/batman-adv/fragmentation.c | |||
@@ -296,8 +296,7 @@ batadv_frag_merge_packets(struct hlist_head *chain) | |||
296 | /* Copy the payload of the each fragment into the last skb */ | 296 | /* Copy the payload of the each fragment into the last skb */ |
297 | hlist_for_each_entry(entry, chain, list) { | 297 | hlist_for_each_entry(entry, chain, list) { |
298 | size = entry->skb->len - hdr_size; | 298 | size = entry->skb->len - hdr_size; |
299 | memcpy(skb_put(skb_out, size), entry->skb->data + hdr_size, | 299 | skb_put_data(skb_out, entry->skb->data + hdr_size, size); |
300 | size); | ||
301 | } | 300 | } |
302 | 301 | ||
303 | free: | 302 | free: |
diff --git a/net/bluetooth/cmtp/core.c b/net/bluetooth/cmtp/core.c index 9e59b6654126..f4c64ef01c24 100644 --- a/net/bluetooth/cmtp/core.c +++ b/net/bluetooth/cmtp/core.c | |||
@@ -122,7 +122,7 @@ static inline void cmtp_add_msgpart(struct cmtp_session *session, int id, const | |||
122 | if (skb && (skb->len > 0)) | 122 | if (skb && (skb->len > 0)) |
123 | skb_copy_from_linear_data(skb, skb_put(nskb, skb->len), skb->len); | 123 | skb_copy_from_linear_data(skb, skb_put(nskb, skb->len), skb->len); |
124 | 124 | ||
125 | memcpy(skb_put(nskb, count), buf, count); | 125 | skb_put_data(nskb, buf, count); |
126 | 126 | ||
127 | session->reassembly[id] = nskb; | 127 | session->reassembly[id] = nskb; |
128 | 128 | ||
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index 93806b959039..d860e3cc23cf 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c | |||
@@ -3266,7 +3266,7 @@ int hci_reset_dev(struct hci_dev *hdev) | |||
3266 | return -ENOMEM; | 3266 | return -ENOMEM; |
3267 | 3267 | ||
3268 | hci_skb_pkt_type(skb) = HCI_EVENT_PKT; | 3268 | hci_skb_pkt_type(skb) = HCI_EVENT_PKT; |
3269 | memcpy(skb_put(skb, 3), hw_err, 3); | 3269 | skb_put_data(skb, hw_err, 3); |
3270 | 3270 | ||
3271 | /* Send Hardware Error to upper stack */ | 3271 | /* Send Hardware Error to upper stack */ |
3272 | return hci_recv_frame(hdev, skb); | 3272 | return hci_recv_frame(hdev, skb); |
diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c index b5faff458d8b..4e4105a932bd 100644 --- a/net/bluetooth/hci_request.c +++ b/net/bluetooth/hci_request.c | |||
@@ -304,7 +304,7 @@ struct sk_buff *hci_prepare_cmd(struct hci_dev *hdev, u16 opcode, u32 plen, | |||
304 | hdr->plen = plen; | 304 | hdr->plen = plen; |
305 | 305 | ||
306 | if (plen) | 306 | if (plen) |
307 | memcpy(skb_put(skb, plen), param, plen); | 307 | skb_put_data(skb, param, plen); |
308 | 308 | ||
309 | BT_DBG("skb len %d", skb->len); | 309 | BT_DBG("skb len %d", skb->len); |
310 | 310 | ||
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c index 638bf0e1a2e3..083e87f26a0f 100644 --- a/net/bluetooth/hci_sock.c +++ b/net/bluetooth/hci_sock.c | |||
@@ -379,7 +379,7 @@ void hci_send_monitor_ctrl_event(struct hci_dev *hdev, u16 event, | |||
379 | put_unaligned_le16(event, skb_put(skb, 2)); | 379 | put_unaligned_le16(event, skb_put(skb, 2)); |
380 | 380 | ||
381 | if (data) | 381 | if (data) |
382 | memcpy(skb_put(skb, data_len), data, data_len); | 382 | skb_put_data(skb, data, data_len); |
383 | 383 | ||
384 | skb->tstamp = tstamp; | 384 | skb->tstamp = tstamp; |
385 | 385 | ||
@@ -515,10 +515,10 @@ static struct sk_buff *create_monitor_ctrl_open(struct sock *sk) | |||
515 | 515 | ||
516 | put_unaligned_le32(hci_pi(sk)->cookie, skb_put(skb, 4)); | 516 | put_unaligned_le32(hci_pi(sk)->cookie, skb_put(skb, 4)); |
517 | put_unaligned_le16(format, skb_put(skb, 2)); | 517 | put_unaligned_le16(format, skb_put(skb, 2)); |
518 | memcpy(skb_put(skb, sizeof(ver)), ver, sizeof(ver)); | 518 | skb_put_data(skb, ver, sizeof(ver)); |
519 | put_unaligned_le32(flags, skb_put(skb, 4)); | 519 | put_unaligned_le32(flags, skb_put(skb, 4)); |
520 | *skb_put(skb, 1) = TASK_COMM_LEN; | 520 | *skb_put(skb, 1) = TASK_COMM_LEN; |
521 | memcpy(skb_put(skb, TASK_COMM_LEN), hci_pi(sk)->comm, TASK_COMM_LEN); | 521 | skb_put_data(skb, hci_pi(sk)->comm, TASK_COMM_LEN); |
522 | 522 | ||
523 | __net_timestamp(skb); | 523 | __net_timestamp(skb); |
524 | 524 | ||
@@ -586,7 +586,7 @@ static struct sk_buff *create_monitor_ctrl_command(struct sock *sk, u16 index, | |||
586 | put_unaligned_le16(opcode, skb_put(skb, 2)); | 586 | put_unaligned_le16(opcode, skb_put(skb, 2)); |
587 | 587 | ||
588 | if (buf) | 588 | if (buf) |
589 | memcpy(skb_put(skb, len), buf, len); | 589 | skb_put_data(skb, buf, len); |
590 | 590 | ||
591 | __net_timestamp(skb); | 591 | __net_timestamp(skb); |
592 | 592 | ||
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c index 0bec4588c3c8..9e83713262e8 100644 --- a/net/bluetooth/hidp/core.c +++ b/net/bluetooth/hidp/core.c | |||
@@ -114,7 +114,7 @@ static int hidp_send_message(struct hidp_session *session, struct socket *sock, | |||
114 | 114 | ||
115 | *skb_put(skb, 1) = hdr; | 115 | *skb_put(skb, 1) = hdr; |
116 | if (data && size > 0) | 116 | if (data && size > 0) |
117 | memcpy(skb_put(skb, size), data, size); | 117 | skb_put_data(skb, data, size); |
118 | 118 | ||
119 | skb_queue_tail(transmit, skb); | 119 | skb_queue_tail(transmit, skb); |
120 | wake_up_interruptible(sk_sleep(sk)); | 120 | wake_up_interruptible(sk_sleep(sk)); |
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index f88ac99528ce..fe6a5529bdf5 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c | |||
@@ -2923,7 +2923,7 @@ static struct sk_buff *l2cap_build_cmd(struct l2cap_conn *conn, u8 code, | |||
2923 | 2923 | ||
2924 | if (dlen) { | 2924 | if (dlen) { |
2925 | count -= L2CAP_HDR_SIZE + L2CAP_CMD_HDR_SIZE; | 2925 | count -= L2CAP_HDR_SIZE + L2CAP_CMD_HDR_SIZE; |
2926 | memcpy(skb_put(skb, count), data, count); | 2926 | skb_put_data(skb, data, count); |
2927 | data += count; | 2927 | data += count; |
2928 | } | 2928 | } |
2929 | 2929 | ||
@@ -2938,7 +2938,7 @@ static struct sk_buff *l2cap_build_cmd(struct l2cap_conn *conn, u8 code, | |||
2938 | if (!*frag) | 2938 | if (!*frag) |
2939 | goto fail; | 2939 | goto fail; |
2940 | 2940 | ||
2941 | memcpy(skb_put(*frag, count), data, count); | 2941 | skb_put_data(*frag, data, count); |
2942 | 2942 | ||
2943 | len -= count; | 2943 | len -= count; |
2944 | data += count; | 2944 | data += count; |
diff --git a/net/bluetooth/mgmt_util.c b/net/bluetooth/mgmt_util.c index c933bd08c1fe..11d0ca64402b 100644 --- a/net/bluetooth/mgmt_util.c +++ b/net/bluetooth/mgmt_util.c | |||
@@ -44,7 +44,7 @@ static struct sk_buff *create_monitor_ctrl_event(__le16 index, u32 cookie, | |||
44 | put_unaligned_le16(opcode, skb_put(skb, 2)); | 44 | put_unaligned_le16(opcode, skb_put(skb, 2)); |
45 | 45 | ||
46 | if (buf) | 46 | if (buf) |
47 | memcpy(skb_put(skb, len), buf, len); | 47 | skb_put_data(skb, buf, len); |
48 | 48 | ||
49 | __net_timestamp(skb); | 49 | __net_timestamp(skb); |
50 | 50 | ||
@@ -75,7 +75,7 @@ int mgmt_send_event(u16 event, struct hci_dev *hdev, unsigned short channel, | |||
75 | hdr->len = cpu_to_le16(data_len); | 75 | hdr->len = cpu_to_le16(data_len); |
76 | 76 | ||
77 | if (data) | 77 | if (data) |
78 | memcpy(skb_put(skb, data_len), data, data_len); | 78 | skb_put_data(skb, data, data_len); |
79 | 79 | ||
80 | /* Time stamp */ | 80 | /* Time stamp */ |
81 | __net_timestamp(skb); | 81 | __net_timestamp(skb); |
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c index 2f2cb5e27cdd..5f3074cb6b4d 100644 --- a/net/bluetooth/rfcomm/tty.c +++ b/net/bluetooth/rfcomm/tty.c | |||
@@ -798,7 +798,7 @@ static int rfcomm_tty_write(struct tty_struct *tty, const unsigned char *buf, in | |||
798 | 798 | ||
799 | skb_reserve(skb, RFCOMM_SKB_HEAD_RESERVE); | 799 | skb_reserve(skb, RFCOMM_SKB_HEAD_RESERVE); |
800 | 800 | ||
801 | memcpy(skb_put(skb, size), buf + sent, size); | 801 | skb_put_data(skb, buf + sent, size); |
802 | 802 | ||
803 | rfcomm_dlc_send_noerror(dlc, skb); | 803 | rfcomm_dlc_send_noerror(dlc, skb); |
804 | 804 | ||
diff --git a/net/bridge/netfilter/nft_reject_bridge.c b/net/bridge/netfilter/nft_reject_bridge.c index bb6ed8e97580..15bf0c5322ab 100644 --- a/net/bridge/netfilter/nft_reject_bridge.c +++ b/net/bridge/netfilter/nft_reject_bridge.c | |||
@@ -151,8 +151,7 @@ static void nft_reject_br_send_v4_unreach(struct net *net, | |||
151 | icmph->type = ICMP_DEST_UNREACH; | 151 | icmph->type = ICMP_DEST_UNREACH; |
152 | icmph->code = code; | 152 | icmph->code = code; |
153 | 153 | ||
154 | payload = skb_put(nskb, len); | 154 | payload = skb_put_data(nskb, skb_network_header(oldskb), len); |
155 | memcpy(payload, skb_network_header(oldskb), len); | ||
156 | 155 | ||
157 | csum = csum_partial((void *)icmph, len + sizeof(struct icmphdr), 0); | 156 | csum = csum_partial((void *)icmph, len + sizeof(struct icmphdr), 0); |
158 | icmph->checksum = csum_fold(csum); | 157 | icmph->checksum = csum_fold(csum); |
@@ -278,8 +277,7 @@ static void nft_reject_br_send_v6_unreach(struct net *net, | |||
278 | icmp6h->icmp6_type = ICMPV6_DEST_UNREACH; | 277 | icmp6h->icmp6_type = ICMPV6_DEST_UNREACH; |
279 | icmp6h->icmp6_code = code; | 278 | icmp6h->icmp6_code = code; |
280 | 279 | ||
281 | payload = skb_put(nskb, len); | 280 | payload = skb_put_data(nskb, skb_network_header(oldskb), len); |
282 | memcpy(payload, skb_network_header(oldskb), len); | ||
283 | nip6h->payload_len = htons(nskb->len - sizeof(struct ipv6hdr)); | 281 | nip6h->payload_len = htons(nskb->len - sizeof(struct ipv6hdr)); |
284 | 282 | ||
285 | icmp6h->icmp6_cksum = | 283 | icmp6h->icmp6_cksum = |
diff --git a/net/can/bcm.c b/net/can/bcm.c index 65432633a250..47a8748d953a 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c | |||
@@ -282,7 +282,7 @@ static void bcm_can_tx(struct bcm_op *op) | |||
282 | can_skb_prv(skb)->ifindex = dev->ifindex; | 282 | can_skb_prv(skb)->ifindex = dev->ifindex; |
283 | can_skb_prv(skb)->skbcnt = 0; | 283 | can_skb_prv(skb)->skbcnt = 0; |
284 | 284 | ||
285 | memcpy(skb_put(skb, op->cfsiz), cf, op->cfsiz); | 285 | skb_put_data(skb, cf, op->cfsiz); |
286 | 286 | ||
287 | /* send with loopback */ | 287 | /* send with loopback */ |
288 | skb->dev = dev; | 288 | skb->dev = dev; |
@@ -318,13 +318,13 @@ static void bcm_send_to_user(struct bcm_op *op, struct bcm_msg_head *head, | |||
318 | if (!skb) | 318 | if (!skb) |
319 | return; | 319 | return; |
320 | 320 | ||
321 | memcpy(skb_put(skb, sizeof(*head)), head, sizeof(*head)); | 321 | skb_put_data(skb, head, sizeof(*head)); |
322 | 322 | ||
323 | if (head->nframes) { | 323 | if (head->nframes) { |
324 | /* CAN frames starting here */ | 324 | /* CAN frames starting here */ |
325 | firstframe = (struct canfd_frame *)skb_tail_pointer(skb); | 325 | firstframe = (struct canfd_frame *)skb_tail_pointer(skb); |
326 | 326 | ||
327 | memcpy(skb_put(skb, datalen), frames, datalen); | 327 | skb_put_data(skb, frames, datalen); |
328 | 328 | ||
329 | /* | 329 | /* |
330 | * the BCM uses the flags-element of the canfd_frame | 330 | * the BCM uses the flags-element of the canfd_frame |
diff --git a/net/decnet/dn_nsp_out.c b/net/decnet/dn_nsp_out.c index 849805e7af52..b8a558715395 100644 --- a/net/decnet/dn_nsp_out.c +++ b/net/decnet/dn_nsp_out.c | |||
@@ -533,7 +533,7 @@ void dn_send_conn_conf(struct sock *sk, gfp_t gfp) | |||
533 | *skb_put(skb,1) = len; | 533 | *skb_put(skb,1) = len; |
534 | 534 | ||
535 | if (len > 0) | 535 | if (len > 0) |
536 | memcpy(skb_put(skb, len), scp->conndata_out.opt_data, len); | 536 | skb_put_data(skb, scp->conndata_out.opt_data, len); |
537 | 537 | ||
538 | 538 | ||
539 | dn_nsp_send(skb); | 539 | dn_nsp_send(skb); |
@@ -691,22 +691,22 @@ void dn_nsp_send_conninit(struct sock *sk, unsigned char msgflg) | |||
691 | aux = scp->accessdata.acc_userl; | 691 | aux = scp->accessdata.acc_userl; |
692 | *skb_put(skb, 1) = aux; | 692 | *skb_put(skb, 1) = aux; |
693 | if (aux > 0) | 693 | if (aux > 0) |
694 | memcpy(skb_put(skb, aux), scp->accessdata.acc_user, aux); | 694 | skb_put_data(skb, scp->accessdata.acc_user, aux); |
695 | 695 | ||
696 | aux = scp->accessdata.acc_passl; | 696 | aux = scp->accessdata.acc_passl; |
697 | *skb_put(skb, 1) = aux; | 697 | *skb_put(skb, 1) = aux; |
698 | if (aux > 0) | 698 | if (aux > 0) |
699 | memcpy(skb_put(skb, aux), scp->accessdata.acc_pass, aux); | 699 | skb_put_data(skb, scp->accessdata.acc_pass, aux); |
700 | 700 | ||
701 | aux = scp->accessdata.acc_accl; | 701 | aux = scp->accessdata.acc_accl; |
702 | *skb_put(skb, 1) = aux; | 702 | *skb_put(skb, 1) = aux; |
703 | if (aux > 0) | 703 | if (aux > 0) |
704 | memcpy(skb_put(skb, aux), scp->accessdata.acc_acc, aux); | 704 | skb_put_data(skb, scp->accessdata.acc_acc, aux); |
705 | 705 | ||
706 | aux = (__u8)le16_to_cpu(scp->conndata_out.opt_optl); | 706 | aux = (__u8)le16_to_cpu(scp->conndata_out.opt_optl); |
707 | *skb_put(skb, 1) = aux; | 707 | *skb_put(skb, 1) = aux; |
708 | if (aux > 0) | 708 | if (aux > 0) |
709 | memcpy(skb_put(skb, aux), scp->conndata_out.opt_data, aux); | 709 | skb_put_data(skb, scp->conndata_out.opt_data, aux); |
710 | 710 | ||
711 | scp->persist = dn_nsp_persist(sk); | 711 | scp->persist = dn_nsp_persist(sk); |
712 | scp->persist_fxn = dn_nsp_retrans_conninit; | 712 | scp->persist_fxn = dn_nsp_retrans_conninit; |
diff --git a/net/ieee802154/6lowpan/tx.c b/net/ieee802154/6lowpan/tx.c index dbb476d7d38f..e6ff5128e61a 100644 --- a/net/ieee802154/6lowpan/tx.c +++ b/net/ieee802154/6lowpan/tx.c | |||
@@ -121,8 +121,7 @@ lowpan_alloc_frag(struct sk_buff *skb, int size, | |||
121 | *mac_cb(frag) = *mac_cb(skb); | 121 | *mac_cb(frag) = *mac_cb(skb); |
122 | 122 | ||
123 | if (frag1) { | 123 | if (frag1) { |
124 | memcpy(skb_put(frag, skb->mac_len), | 124 | skb_put_data(frag, skb_mac_header(skb), skb->mac_len); |
125 | skb_mac_header(skb), skb->mac_len); | ||
126 | } else { | 125 | } else { |
127 | rc = wpan_dev_hard_header(frag, wdev, | 126 | rc = wpan_dev_hard_header(frag, wdev, |
128 | &master_hdr->dest, | 127 | &master_hdr->dest, |
@@ -152,8 +151,8 @@ lowpan_xmit_fragment(struct sk_buff *skb, const struct ieee802154_hdr *wpan_hdr, | |||
152 | if (IS_ERR(frag)) | 151 | if (IS_ERR(frag)) |
153 | return PTR_ERR(frag); | 152 | return PTR_ERR(frag); |
154 | 153 | ||
155 | memcpy(skb_put(frag, frag_hdrlen), frag_hdr, frag_hdrlen); | 154 | skb_put_data(frag, frag_hdr, frag_hdrlen); |
156 | memcpy(skb_put(frag, len), skb_network_header(skb) + offset, len); | 155 | skb_put_data(frag, skb_network_header(skb) + offset, len); |
157 | 156 | ||
158 | raw_dump_table(__func__, " fragment dump", frag->data, frag->len); | 157 | raw_dump_table(__func__, " fragment dump", frag->data, frag->len); |
159 | 158 | ||
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index 9098429e38bc..b64046ccae69 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c | |||
@@ -1602,7 +1602,7 @@ static struct sk_buff *mld_newpack(struct inet6_dev *idev, unsigned int mtu) | |||
1602 | 1602 | ||
1603 | ip6_mc_hdr(sk, skb, dev, saddr, &mld2_all_mcr, NEXTHDR_HOP, 0); | 1603 | ip6_mc_hdr(sk, skb, dev, saddr, &mld2_all_mcr, NEXTHDR_HOP, 0); |
1604 | 1604 | ||
1605 | memcpy(skb_put(skb, sizeof(ra)), ra, sizeof(ra)); | 1605 | skb_put_data(skb, ra, sizeof(ra)); |
1606 | 1606 | ||
1607 | skb_set_transport_header(skb, skb_tail_pointer(skb) - skb->data); | 1607 | skb_set_transport_header(skb, skb_tail_pointer(skb) - skb->data); |
1608 | skb_put(skb, sizeof(*pmr)); | 1608 | skb_put(skb, sizeof(*pmr)); |
@@ -2006,7 +2006,7 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type) | |||
2006 | 2006 | ||
2007 | ip6_mc_hdr(sk, skb, dev, saddr, snd_addr, NEXTHDR_HOP, payload_len); | 2007 | ip6_mc_hdr(sk, skb, dev, saddr, snd_addr, NEXTHDR_HOP, payload_len); |
2008 | 2008 | ||
2009 | memcpy(skb_put(skb, sizeof(ra)), ra, sizeof(ra)); | 2009 | skb_put_data(skb, ra, sizeof(ra)); |
2010 | 2010 | ||
2011 | hdr = skb_put_zero(skb, sizeof(struct mld_msg)); | 2011 | hdr = skb_put_zero(skb, sizeof(struct mld_msg)); |
2012 | hdr->mld_type = type; | 2012 | hdr->mld_type = type; |
diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c index f6061c4bb0a8..ec157c3419b5 100644 --- a/net/irda/ircomm/ircomm_tty.c +++ b/net/irda/ircomm/ircomm_tty.c | |||
@@ -690,7 +690,7 @@ static int ircomm_tty_write(struct tty_struct *tty, | |||
690 | } | 690 | } |
691 | 691 | ||
692 | /* Copy data */ | 692 | /* Copy data */ |
693 | memcpy(skb_put(skb,size), buf + len, size); | 693 | skb_put_data(skb, buf + len, size); |
694 | 694 | ||
695 | count -= size; | 695 | count -= size; |
696 | len += size; | 696 | len += size; |
diff --git a/net/irda/irlap_frame.c b/net/irda/irlap_frame.c index b936b1251a66..bf56ac7dba96 100644 --- a/net/irda/irlap_frame.c +++ b/net/irda/irlap_frame.c | |||
@@ -392,8 +392,7 @@ void irlap_send_discovery_xid_frame(struct irlap_cb *self, int S, __u8 s, | |||
392 | info[0] = discovery->data.charset; | 392 | info[0] = discovery->data.charset; |
393 | 393 | ||
394 | len = IRDA_MIN(discovery->name_len, skb_tailroom(tx_skb)); | 394 | len = IRDA_MIN(discovery->name_len, skb_tailroom(tx_skb)); |
395 | info = skb_put(tx_skb, len); | 395 | info = skb_put_data(tx_skb, discovery->data.info, len); |
396 | memcpy(info, discovery->data.info, len); | ||
397 | } | 396 | } |
398 | irlap_queue_xmit(self, tx_skb); | 397 | irlap_queue_xmit(self, tx_skb); |
399 | } | 398 | } |
@@ -1216,8 +1215,7 @@ void irlap_send_test_frame(struct irlap_cb *self, __u8 caddr, __u32 daddr, | |||
1216 | frame->control = TEST_RSP | PF_BIT; | 1215 | frame->control = TEST_RSP | PF_BIT; |
1217 | 1216 | ||
1218 | /* Copy info */ | 1217 | /* Copy info */ |
1219 | info = skb_put(tx_skb, cmd->len); | 1218 | info = skb_put_data(tx_skb, cmd->data, cmd->len); |
1220 | memcpy(info, cmd->data, cmd->len); | ||
1221 | 1219 | ||
1222 | /* Return to sender */ | 1220 | /* Return to sender */ |
1223 | irlap_wait_min_turn_around(self, &self->qos_tx); | 1221 | irlap_wait_min_turn_around(self, &self->qos_tx); |
diff --git a/net/key/af_key.c b/net/key/af_key.c index 8ad430edb5b8..3ebb4268973b 100644 --- a/net/key/af_key.c +++ b/net/key/af_key.c | |||
@@ -1706,8 +1706,7 @@ static int unicast_flush_resp(struct sock *sk, const struct sadb_msg *ihdr) | |||
1706 | if (!skb) | 1706 | if (!skb) |
1707 | return -ENOBUFS; | 1707 | return -ENOBUFS; |
1708 | 1708 | ||
1709 | hdr = (struct sadb_msg *) skb_put(skb, sizeof(struct sadb_msg)); | 1709 | hdr = skb_put_data(skb, ihdr, sizeof(struct sadb_msg)); |
1710 | memcpy(hdr, ihdr, sizeof(struct sadb_msg)); | ||
1711 | hdr->sadb_msg_errno = (uint8_t) 0; | 1710 | hdr->sadb_msg_errno = (uint8_t) 0; |
1712 | hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t)); | 1711 | hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t)); |
1713 | 1712 | ||
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 660ac6a426f4..e9c6aa3ed05b 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c | |||
@@ -1569,7 +1569,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata, | |||
1569 | return; | 1569 | return; |
1570 | 1570 | ||
1571 | skb_reserve(skb, local->tx_headroom); | 1571 | skb_reserve(skb, local->tx_headroom); |
1572 | memcpy(skb_put(skb, presp->head_len), presp->head, presp->head_len); | 1572 | skb_put_data(skb, presp->head, presp->head_len); |
1573 | 1573 | ||
1574 | memcpy(((struct ieee80211_mgmt *) skb->data)->da, mgmt->sa, ETH_ALEN); | 1574 | memcpy(((struct ieee80211_mgmt *) skb->data)->da, mgmt->sa, ETH_ALEN); |
1575 | ibss_dbg(sdata, "Sending ProbeResp to %pM\n", mgmt->sa); | 1575 | ibss_dbg(sdata, "Sending ProbeResp to %pM\n", mgmt->sa); |
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c index e45c8d94952e..861697f2d75b 100644 --- a/net/mac80211/mesh.c +++ b/net/mac80211/mesh.c | |||
@@ -345,7 +345,7 @@ int mesh_add_vendor_ies(struct ieee80211_sub_if_data *sdata, | |||
345 | data = ifmsh->ie + offset; | 345 | data = ifmsh->ie + offset; |
346 | if (skb_tailroom(skb) < len) | 346 | if (skb_tailroom(skb) < len) |
347 | return -ENOMEM; | 347 | return -ENOMEM; |
348 | memcpy(skb_put(skb, len), data, len); | 348 | skb_put_data(skb, data, len); |
349 | } | 349 | } |
350 | 350 | ||
351 | return 0; | 351 | return 0; |
@@ -369,7 +369,7 @@ int mesh_add_rsn_ie(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) | |||
369 | 369 | ||
370 | if (skb_tailroom(skb) < len) | 370 | if (skb_tailroom(skb) < len) |
371 | return -ENOMEM; | 371 | return -ENOMEM; |
372 | memcpy(skb_put(skb, len), data, len); | 372 | skb_put_data(skb, data, len); |
373 | 373 | ||
374 | return 0; | 374 | return 0; |
375 | } | 375 | } |
@@ -1125,8 +1125,8 @@ ieee80211_mesh_rx_probe_req(struct ieee80211_sub_if_data *sdata, | |||
1125 | goto out; | 1125 | goto out; |
1126 | 1126 | ||
1127 | skb_reserve(presp, local->tx_headroom); | 1127 | skb_reserve(presp, local->tx_headroom); |
1128 | memcpy(skb_put(presp, bcn->head_len), bcn->head, bcn->head_len); | 1128 | skb_put_data(presp, bcn->head, bcn->head_len); |
1129 | memcpy(skb_put(presp, bcn->tail_len), bcn->tail, bcn->tail_len); | 1129 | skb_put_data(presp, bcn->tail, bcn->tail_len); |
1130 | hdr = (struct ieee80211_mgmt *) presp->data; | 1130 | hdr = (struct ieee80211_mgmt *) presp->data; |
1131 | hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | | 1131 | hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | |
1132 | IEEE80211_STYPE_PROBE_RESP); | 1132 | IEEE80211_STYPE_PROBE_RESP); |
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index e810334595ff..7be7917e1541 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -796,8 +796,8 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata) | |||
796 | after_ric, | 796 | after_ric, |
797 | ARRAY_SIZE(after_ric), | 797 | ARRAY_SIZE(after_ric), |
798 | offset); | 798 | offset); |
799 | pos = skb_put(skb, noffset - offset); | 799 | pos = skb_put_data(skb, assoc_data->ie + offset, |
800 | memcpy(pos, assoc_data->ie + offset, noffset - offset); | 800 | noffset - offset); |
801 | offset = noffset; | 801 | offset = noffset; |
802 | } | 802 | } |
803 | 803 | ||
@@ -834,8 +834,8 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata) | |||
834 | noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, | 834 | noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, |
835 | before_vht, ARRAY_SIZE(before_vht), | 835 | before_vht, ARRAY_SIZE(before_vht), |
836 | offset); | 836 | offset); |
837 | pos = skb_put(skb, noffset - offset); | 837 | pos = skb_put_data(skb, assoc_data->ie + offset, |
838 | memcpy(pos, assoc_data->ie + offset, noffset - offset); | 838 | noffset - offset); |
839 | offset = noffset; | 839 | offset = noffset; |
840 | } | 840 | } |
841 | 841 | ||
@@ -848,8 +848,8 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata) | |||
848 | noffset = ieee80211_ie_split_vendor(assoc_data->ie, | 848 | noffset = ieee80211_ie_split_vendor(assoc_data->ie, |
849 | assoc_data->ie_len, | 849 | assoc_data->ie_len, |
850 | offset); | 850 | offset); |
851 | pos = skb_put(skb, noffset - offset); | 851 | pos = skb_put_data(skb, assoc_data->ie + offset, |
852 | memcpy(pos, assoc_data->ie + offset, noffset - offset); | 852 | noffset - offset); |
853 | offset = noffset; | 853 | offset = noffset; |
854 | } | 854 | } |
855 | 855 | ||
@@ -868,8 +868,8 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata) | |||
868 | /* add any remaining custom (i.e. vendor specific here) IEs */ | 868 | /* add any remaining custom (i.e. vendor specific here) IEs */ |
869 | if (assoc_data->ie_len) { | 869 | if (assoc_data->ie_len) { |
870 | noffset = assoc_data->ie_len; | 870 | noffset = assoc_data->ie_len; |
871 | pos = skb_put(skb, noffset - offset); | 871 | pos = skb_put_data(skb, assoc_data->ie + offset, |
872 | memcpy(pos, assoc_data->ie + offset, noffset - offset); | 872 | noffset - offset); |
873 | } | 873 | } |
874 | 874 | ||
875 | if (assoc_data->fils_kek_len && | 875 | if (assoc_data->fils_kek_len && |
diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c index eede5c6db8d5..f8e7a8bbc618 100644 --- a/net/mac80211/offchannel.c +++ b/net/mac80211/offchannel.c | |||
@@ -885,8 +885,7 @@ int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, | |||
885 | } | 885 | } |
886 | skb_reserve(skb, local->hw.extra_tx_headroom); | 886 | skb_reserve(skb, local->hw.extra_tx_headroom); |
887 | 887 | ||
888 | data = skb_put(skb, params->len); | 888 | data = skb_put_data(skb, params->buf, params->len); |
889 | memcpy(data, params->buf, params->len); | ||
890 | 889 | ||
891 | /* Update CSA counters */ | 890 | /* Update CSA counters */ |
892 | if (sdata->vif.csa_active && | 891 | if (sdata->vif.csa_active && |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index e1ab1c4af33c..53b00bb52095 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -2098,7 +2098,7 @@ ieee80211_rx_h_defragment(struct ieee80211_rx_data *rx) | |||
2098 | } | 2098 | } |
2099 | } | 2099 | } |
2100 | while ((skb = __skb_dequeue(&entry->skb_list))) { | 2100 | while ((skb = __skb_dequeue(&entry->skb_list))) { |
2101 | memcpy(skb_put(rx->skb, skb->len), skb->data, skb->len); | 2101 | skb_put_data(rx->skb, skb->data, skb->len); |
2102 | dev_kfree_skb(skb); | 2102 | dev_kfree_skb(skb); |
2103 | } | 2103 | } |
2104 | 2104 | ||
diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c index c379c99cd1d8..86740670102d 100644 --- a/net/mac80211/tdls.c +++ b/net/mac80211/tdls.c | |||
@@ -388,8 +388,7 @@ ieee80211_tdls_add_setup_start_ies(struct ieee80211_sub_if_data *sdata, | |||
388 | before_ext_cap, | 388 | before_ext_cap, |
389 | ARRAY_SIZE(before_ext_cap), | 389 | ARRAY_SIZE(before_ext_cap), |
390 | offset); | 390 | offset); |
391 | pos = skb_put(skb, noffset - offset); | 391 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
392 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
393 | offset = noffset; | 392 | offset = noffset; |
394 | } | 393 | } |
395 | 394 | ||
@@ -418,8 +417,7 @@ ieee80211_tdls_add_setup_start_ies(struct ieee80211_sub_if_data *sdata, | |||
418 | before_ht_cap, | 417 | before_ht_cap, |
419 | ARRAY_SIZE(before_ht_cap), | 418 | ARRAY_SIZE(before_ht_cap), |
420 | offset); | 419 | offset); |
421 | pos = skb_put(skb, noffset - offset); | 420 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
422 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
423 | offset = noffset; | 421 | offset = noffset; |
424 | } | 422 | } |
425 | 423 | ||
@@ -490,8 +488,7 @@ ieee80211_tdls_add_setup_start_ies(struct ieee80211_sub_if_data *sdata, | |||
490 | before_vht_cap, | 488 | before_vht_cap, |
491 | ARRAY_SIZE(before_vht_cap), | 489 | ARRAY_SIZE(before_vht_cap), |
492 | offset); | 490 | offset); |
493 | pos = skb_put(skb, noffset - offset); | 491 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
494 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
495 | offset = noffset; | 492 | offset = noffset; |
496 | } | 493 | } |
497 | 494 | ||
@@ -532,8 +529,7 @@ ieee80211_tdls_add_setup_start_ies(struct ieee80211_sub_if_data *sdata, | |||
532 | /* add any remaining IEs */ | 529 | /* add any remaining IEs */ |
533 | if (extra_ies_len) { | 530 | if (extra_ies_len) { |
534 | noffset = extra_ies_len; | 531 | noffset = extra_ies_len; |
535 | pos = skb_put(skb, noffset - offset); | 532 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
536 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
537 | } | 533 | } |
538 | 534 | ||
539 | } | 535 | } |
@@ -575,8 +571,7 @@ ieee80211_tdls_add_setup_cfm_ies(struct ieee80211_sub_if_data *sdata, | |||
575 | before_qos, | 571 | before_qos, |
576 | ARRAY_SIZE(before_qos), | 572 | ARRAY_SIZE(before_qos), |
577 | offset); | 573 | offset); |
578 | pos = skb_put(skb, noffset - offset); | 574 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
579 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
580 | offset = noffset; | 575 | offset = noffset; |
581 | } | 576 | } |
582 | 577 | ||
@@ -596,8 +591,7 @@ ieee80211_tdls_add_setup_cfm_ies(struct ieee80211_sub_if_data *sdata, | |||
596 | before_ht_op, | 591 | before_ht_op, |
597 | ARRAY_SIZE(before_ht_op), | 592 | ARRAY_SIZE(before_ht_op), |
598 | offset); | 593 | offset); |
599 | pos = skb_put(skb, noffset - offset); | 594 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
600 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
601 | offset = noffset; | 595 | offset = noffset; |
602 | } | 596 | } |
603 | 597 | ||
@@ -638,8 +632,7 @@ ieee80211_tdls_add_setup_cfm_ies(struct ieee80211_sub_if_data *sdata, | |||
638 | /* add any remaining IEs */ | 632 | /* add any remaining IEs */ |
639 | if (extra_ies_len) { | 633 | if (extra_ies_len) { |
640 | noffset = extra_ies_len; | 634 | noffset = extra_ies_len; |
641 | pos = skb_put(skb, noffset - offset); | 635 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
642 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
643 | } | 636 | } |
644 | } | 637 | } |
645 | 638 | ||
@@ -670,8 +663,7 @@ ieee80211_tdls_add_chan_switch_req_ies(struct ieee80211_sub_if_data *sdata, | |||
670 | before_lnkie, | 663 | before_lnkie, |
671 | ARRAY_SIZE(before_lnkie), | 664 | ARRAY_SIZE(before_lnkie), |
672 | offset); | 665 | offset); |
673 | pos = skb_put(skb, noffset - offset); | 666 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
674 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
675 | offset = noffset; | 667 | offset = noffset; |
676 | } | 668 | } |
677 | 669 | ||
@@ -680,8 +672,7 @@ ieee80211_tdls_add_chan_switch_req_ies(struct ieee80211_sub_if_data *sdata, | |||
680 | /* add any remaining IEs */ | 672 | /* add any remaining IEs */ |
681 | if (extra_ies_len) { | 673 | if (extra_ies_len) { |
682 | noffset = extra_ies_len; | 674 | noffset = extra_ies_len; |
683 | pos = skb_put(skb, noffset - offset); | 675 | pos = skb_put_data(skb, extra_ies + offset, noffset - offset); |
684 | memcpy(pos, extra_ies + offset, noffset - offset); | ||
685 | } | 676 | } |
686 | } | 677 | } |
687 | 678 | ||
@@ -696,7 +687,7 @@ ieee80211_tdls_add_chan_switch_resp_ies(struct ieee80211_sub_if_data *sdata, | |||
696 | ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); | 687 | ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); |
697 | 688 | ||
698 | if (extra_ies_len) | 689 | if (extra_ies_len) |
699 | memcpy(skb_put(skb, extra_ies_len), extra_ies, extra_ies_len); | 690 | skb_put_data(skb, extra_ies, extra_ies_len); |
700 | } | 691 | } |
701 | 692 | ||
702 | static void ieee80211_tdls_add_ies(struct ieee80211_sub_if_data *sdata, | 693 | static void ieee80211_tdls_add_ies(struct ieee80211_sub_if_data *sdata, |
@@ -726,8 +717,7 @@ static void ieee80211_tdls_add_ies(struct ieee80211_sub_if_data *sdata, | |||
726 | case WLAN_TDLS_TEARDOWN: | 717 | case WLAN_TDLS_TEARDOWN: |
727 | case WLAN_TDLS_DISCOVERY_REQUEST: | 718 | case WLAN_TDLS_DISCOVERY_REQUEST: |
728 | if (extra_ies_len) | 719 | if (extra_ies_len) |
729 | memcpy(skb_put(skb, extra_ies_len), extra_ies, | 720 | skb_put_data(skb, extra_ies, extra_ies_len); |
730 | extra_ies_len); | ||
731 | if (status_code == 0 || action_code == WLAN_TDLS_TEARDOWN) | 721 | if (status_code == 0 || action_code == WLAN_TDLS_TEARDOWN) |
732 | ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); | 722 | ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); |
733 | break; | 723 | break; |
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 1af9ed29a915..18c5d6e6305d 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -903,8 +903,8 @@ static int ieee80211_fragment(struct ieee80211_tx_data *tx, | |||
903 | tmp->dev = skb->dev; | 903 | tmp->dev = skb->dev; |
904 | 904 | ||
905 | /* copy header and data */ | 905 | /* copy header and data */ |
906 | memcpy(skb_put(tmp, hdrlen), skb->data, hdrlen); | 906 | skb_put_data(tmp, skb->data, hdrlen); |
907 | memcpy(skb_put(tmp, fraglen), skb->data + pos, fraglen); | 907 | skb_put_data(tmp, skb->data + pos, fraglen); |
908 | 908 | ||
909 | pos += fraglen; | 909 | pos += fraglen; |
910 | } | 910 | } |
@@ -4132,8 +4132,7 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw, | |||
4132 | goto out; | 4132 | goto out; |
4133 | 4133 | ||
4134 | skb_reserve(skb, local->tx_headroom); | 4134 | skb_reserve(skb, local->tx_headroom); |
4135 | memcpy(skb_put(skb, beacon->head_len), beacon->head, | 4135 | skb_put_data(skb, beacon->head, beacon->head_len); |
4136 | beacon->head_len); | ||
4137 | 4136 | ||
4138 | ieee80211_beacon_add_tim(sdata, &ap->ps, skb, | 4137 | ieee80211_beacon_add_tim(sdata, &ap->ps, skb, |
4139 | is_template); | 4138 | is_template); |
@@ -4147,8 +4146,8 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw, | |||
4147 | } | 4146 | } |
4148 | 4147 | ||
4149 | if (beacon->tail) | 4148 | if (beacon->tail) |
4150 | memcpy(skb_put(skb, beacon->tail_len), | 4149 | skb_put_data(skb, beacon->tail, |
4151 | beacon->tail, beacon->tail_len); | 4150 | beacon->tail_len); |
4152 | } else | 4151 | } else |
4153 | goto out; | 4152 | goto out; |
4154 | } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { | 4153 | } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { |
@@ -4171,8 +4170,7 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw, | |||
4171 | if (!skb) | 4170 | if (!skb) |
4172 | goto out; | 4171 | goto out; |
4173 | skb_reserve(skb, local->tx_headroom); | 4172 | skb_reserve(skb, local->tx_headroom); |
4174 | memcpy(skb_put(skb, beacon->head_len), beacon->head, | 4173 | skb_put_data(skb, beacon->head, beacon->head_len); |
4175 | beacon->head_len); | ||
4176 | 4174 | ||
4177 | hdr = (struct ieee80211_hdr *) skb->data; | 4175 | hdr = (struct ieee80211_hdr *) skb->data; |
4178 | hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | | 4176 | hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | |
@@ -4207,8 +4205,7 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw, | |||
4207 | if (!skb) | 4205 | if (!skb) |
4208 | goto out; | 4206 | goto out; |
4209 | skb_reserve(skb, local->tx_headroom); | 4207 | skb_reserve(skb, local->tx_headroom); |
4210 | memcpy(skb_put(skb, beacon->head_len), beacon->head, | 4208 | skb_put_data(skb, beacon->head, beacon->head_len); |
4211 | beacon->head_len); | ||
4212 | ieee80211_beacon_add_tim(sdata, &ifmsh->ps, skb, is_template); | 4209 | ieee80211_beacon_add_tim(sdata, &ifmsh->ps, skb, is_template); |
4213 | 4210 | ||
4214 | if (offs) { | 4211 | if (offs) { |
@@ -4216,8 +4213,7 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw, | |||
4216 | offs->tim_length = skb->len - beacon->head_len; | 4213 | offs->tim_length = skb->len - beacon->head_len; |
4217 | } | 4214 | } |
4218 | 4215 | ||
4219 | memcpy(skb_put(skb, beacon->tail_len), beacon->tail, | 4216 | skb_put_data(skb, beacon->tail, beacon->tail_len); |
4220 | beacon->tail_len); | ||
4221 | } else { | 4217 | } else { |
4222 | WARN_ON(1); | 4218 | WARN_ON(1); |
4223 | goto out; | 4219 | goto out; |
@@ -4337,7 +4333,7 @@ struct sk_buff *ieee80211_proberesp_get(struct ieee80211_hw *hw, | |||
4337 | if (!skb) | 4333 | if (!skb) |
4338 | goto out; | 4334 | goto out; |
4339 | 4335 | ||
4340 | memcpy(skb_put(skb, presp->len), presp->data, presp->len); | 4336 | skb_put_data(skb, presp->data, presp->len); |
4341 | 4337 | ||
4342 | hdr = (struct ieee80211_hdr *) skb->data; | 4338 | hdr = (struct ieee80211_hdr *) skb->data; |
4343 | memset(hdr->addr1, 0, sizeof(hdr->addr1)); | 4339 | memset(hdr->addr1, 0, sizeof(hdr->addr1)); |
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index 148c7276869c..259698de569f 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c | |||
@@ -1252,7 +1252,7 @@ void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, | |||
1252 | mgmt->u.auth.auth_transaction = cpu_to_le16(transaction); | 1252 | mgmt->u.auth.auth_transaction = cpu_to_le16(transaction); |
1253 | mgmt->u.auth.status_code = cpu_to_le16(status); | 1253 | mgmt->u.auth.status_code = cpu_to_le16(status); |
1254 | if (extra) | 1254 | if (extra) |
1255 | memcpy(skb_put(skb, extra_len), extra, extra_len); | 1255 | skb_put_data(skb, extra, extra_len); |
1256 | 1256 | ||
1257 | if (auth_alg == WLAN_AUTH_SHARED_KEY && transaction == 3) { | 1257 | if (auth_alg == WLAN_AUTH_SHARED_KEY && transaction == 3) { |
1258 | mgmt->frame_control |= cpu_to_le16(IEEE80211_FCTL_PROTECTED); | 1258 | mgmt->frame_control |= cpu_to_le16(IEEE80211_FCTL_PROTECTED); |
@@ -1292,8 +1292,7 @@ void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata, | |||
1292 | skb_reserve(skb, local->hw.extra_tx_headroom); | 1292 | skb_reserve(skb, local->hw.extra_tx_headroom); |
1293 | 1293 | ||
1294 | /* copy in frame */ | 1294 | /* copy in frame */ |
1295 | memcpy(skb_put(skb, IEEE80211_DEAUTH_FRAME_LEN), | 1295 | skb_put_data(skb, mgmt, IEEE80211_DEAUTH_FRAME_LEN); |
1296 | mgmt, IEEE80211_DEAUTH_FRAME_LEN); | ||
1297 | 1296 | ||
1298 | if (sdata->vif.type != NL80211_IFTYPE_STATION || | 1297 | if (sdata->vif.type != NL80211_IFTYPE_STATION || |
1299 | !(sdata->u.mgd.flags & IEEE80211_STA_MFP_ENABLED)) | 1298 | !(sdata->u.mgd.flags & IEEE80211_STA_MFP_ENABLED)) |
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 7586d446d7dc..bd24a975fd49 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
@@ -170,7 +170,7 @@ static struct sk_buff *netlink_to_full_skb(const struct sk_buff *skb, | |||
170 | NETLINK_CB(new).dst_group = NETLINK_CB(skb).dst_group; | 170 | NETLINK_CB(new).dst_group = NETLINK_CB(skb).dst_group; |
171 | NETLINK_CB(new).creds = NETLINK_CB(skb).creds; | 171 | NETLINK_CB(new).creds = NETLINK_CB(skb).creds; |
172 | 172 | ||
173 | memcpy(skb_put(new, len), skb->data, len); | 173 | skb_put_data(new, skb->data, len); |
174 | return new; | 174 | return new; |
175 | } | 175 | } |
176 | 176 | ||
diff --git a/net/nfc/digital_dep.c b/net/nfc/digital_dep.c index f864ce19e13d..f44f75a2a4d5 100644 --- a/net/nfc/digital_dep.c +++ b/net/nfc/digital_dep.c | |||
@@ -226,8 +226,7 @@ digital_send_dep_data_prep(struct nfc_digital_dev *ddev, struct sk_buff *skb, | |||
226 | return ERR_PTR(-ENOMEM); | 226 | return ERR_PTR(-ENOMEM); |
227 | } | 227 | } |
228 | 228 | ||
229 | memcpy(skb_put(new_skb, ddev->remote_payload_max), skb->data, | 229 | skb_put_data(new_skb, skb->data, ddev->remote_payload_max); |
230 | ddev->remote_payload_max); | ||
231 | skb_pull(skb, ddev->remote_payload_max); | 230 | skb_pull(skb, ddev->remote_payload_max); |
232 | 231 | ||
233 | ddev->chaining_skb = skb; | 232 | ddev->chaining_skb = skb; |
@@ -277,8 +276,7 @@ digital_recv_dep_data_gather(struct nfc_digital_dev *ddev, u8 pfb, | |||
277 | ddev->chaining_skb = new_skb; | 276 | ddev->chaining_skb = new_skb; |
278 | } | 277 | } |
279 | 278 | ||
280 | memcpy(skb_put(ddev->chaining_skb, resp->len), resp->data, | 279 | skb_put_data(ddev->chaining_skb, resp->data, resp->len); |
281 | resp->len); | ||
282 | 280 | ||
283 | kfree_skb(resp); | 281 | kfree_skb(resp); |
284 | resp = NULL; | 282 | resp = NULL; |
@@ -525,7 +523,7 @@ int digital_in_send_atr_req(struct nfc_digital_dev *ddev, | |||
525 | 523 | ||
526 | if (gb_len) { | 524 | if (gb_len) { |
527 | atr_req->pp |= DIGITAL_GB_BIT; | 525 | atr_req->pp |= DIGITAL_GB_BIT; |
528 | memcpy(skb_put(skb, gb_len), gb, gb_len); | 526 | skb_put_data(skb, gb, gb_len); |
529 | } | 527 | } |
530 | 528 | ||
531 | digital_skb_push_dep_sod(ddev, skb); | 529 | digital_skb_push_dep_sod(ddev, skb); |
@@ -1012,8 +1010,7 @@ static int digital_tg_send_ack(struct nfc_digital_dev *ddev, | |||
1012 | if (ddev->did) { | 1010 | if (ddev->did) { |
1013 | dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT; | 1011 | dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT; |
1014 | 1012 | ||
1015 | memcpy(skb_put(skb, sizeof(ddev->did)), &ddev->did, | 1013 | skb_put_data(skb, &ddev->did, sizeof(ddev->did)); |
1016 | sizeof(ddev->did)); | ||
1017 | } | 1014 | } |
1018 | 1015 | ||
1019 | ddev->curr_nfc_dep_pni = | 1016 | ddev->curr_nfc_dep_pni = |
@@ -1057,8 +1054,7 @@ static int digital_tg_send_atn(struct nfc_digital_dev *ddev) | |||
1057 | if (ddev->did) { | 1054 | if (ddev->did) { |
1058 | dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT; | 1055 | dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT; |
1059 | 1056 | ||
1060 | memcpy(skb_put(skb, sizeof(ddev->did)), &ddev->did, | 1057 | skb_put_data(skb, &ddev->did, sizeof(ddev->did)); |
1061 | sizeof(ddev->did)); | ||
1062 | } | 1058 | } |
1063 | 1059 | ||
1064 | digital_skb_push_dep_sod(ddev, skb); | 1060 | digital_skb_push_dep_sod(ddev, skb); |
@@ -1325,8 +1321,7 @@ int digital_tg_send_dep_res(struct nfc_digital_dev *ddev, struct sk_buff *skb) | |||
1325 | if (ddev->did) { | 1321 | if (ddev->did) { |
1326 | dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT; | 1322 | dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT; |
1327 | 1323 | ||
1328 | memcpy(skb_put(skb, sizeof(ddev->did)), &ddev->did, | 1324 | skb_put_data(skb, &ddev->did, sizeof(ddev->did)); |
1329 | sizeof(ddev->did)); | ||
1330 | } | 1325 | } |
1331 | 1326 | ||
1332 | ddev->curr_nfc_dep_pni = | 1327 | ddev->curr_nfc_dep_pni = |
diff --git a/net/nfc/hci/core.c b/net/nfc/hci/core.c index 2b0f0ac498d2..8741ad47a6fb 100644 --- a/net/nfc/hci/core.c +++ b/net/nfc/hci/core.c | |||
@@ -878,9 +878,9 @@ static void nfc_hci_recv_from_llc(struct nfc_hci_dev *hdev, struct sk_buff *skb) | |||
878 | 878 | ||
879 | skb_queue_walk(&hdev->rx_hcp_frags, frag_skb) { | 879 | skb_queue_walk(&hdev->rx_hcp_frags, frag_skb) { |
880 | msg_len = frag_skb->len - NFC_HCI_HCP_PACKET_HEADER_LEN; | 880 | msg_len = frag_skb->len - NFC_HCI_HCP_PACKET_HEADER_LEN; |
881 | memcpy(skb_put(hcp_skb, msg_len), | 881 | skb_put_data(hcp_skb, |
882 | frag_skb->data + NFC_HCI_HCP_PACKET_HEADER_LEN, | 882 | frag_skb->data + NFC_HCI_HCP_PACKET_HEADER_LEN, |
883 | msg_len); | 883 | msg_len); |
884 | } | 884 | } |
885 | 885 | ||
886 | skb_queue_purge(&hdev->rx_hcp_frags); | 886 | skb_queue_purge(&hdev->rx_hcp_frags); |
diff --git a/net/nfc/llcp_commands.c b/net/nfc/llcp_commands.c index c5959ce503e6..367d8c027101 100644 --- a/net/nfc/llcp_commands.c +++ b/net/nfc/llcp_commands.c | |||
@@ -298,7 +298,7 @@ static struct sk_buff *llcp_add_header(struct sk_buff *pdu, | |||
298 | 298 | ||
299 | pr_debug("header 0x%x 0x%x\n", header[0], header[1]); | 299 | pr_debug("header 0x%x 0x%x\n", header[0], header[1]); |
300 | 300 | ||
301 | memcpy(skb_put(pdu, LLCP_HEADER_SIZE), header, LLCP_HEADER_SIZE); | 301 | skb_put_data(pdu, header, LLCP_HEADER_SIZE); |
302 | 302 | ||
303 | return pdu; | 303 | return pdu; |
304 | } | 304 | } |
@@ -311,7 +311,7 @@ static struct sk_buff *llcp_add_tlv(struct sk_buff *pdu, u8 *tlv, | |||
311 | if (tlv == NULL) | 311 | if (tlv == NULL) |
312 | return NULL; | 312 | return NULL; |
313 | 313 | ||
314 | memcpy(skb_put(pdu, tlv_length), tlv, tlv_length); | 314 | skb_put_data(pdu, tlv, tlv_length); |
315 | 315 | ||
316 | return pdu; | 316 | return pdu; |
317 | } | 317 | } |
@@ -549,7 +549,7 @@ int nfc_llcp_send_snl_sdres(struct nfc_llcp_local *local, | |||
549 | return PTR_ERR(skb); | 549 | return PTR_ERR(skb); |
550 | 550 | ||
551 | hlist_for_each_entry_safe(sdp, n, tlv_list, node) { | 551 | hlist_for_each_entry_safe(sdp, n, tlv_list, node) { |
552 | memcpy(skb_put(skb, sdp->tlv_len), sdp->tlv, sdp->tlv_len); | 552 | skb_put_data(skb, sdp->tlv, sdp->tlv_len); |
553 | 553 | ||
554 | hlist_del(&sdp->node); | 554 | hlist_del(&sdp->node); |
555 | 555 | ||
@@ -581,8 +581,7 @@ int nfc_llcp_send_snl_sdreq(struct nfc_llcp_local *local, | |||
581 | hlist_for_each_entry_safe(sdreq, n, tlv_list, node) { | 581 | hlist_for_each_entry_safe(sdreq, n, tlv_list, node) { |
582 | pr_debug("tid %d for %s\n", sdreq->tid, sdreq->uri); | 582 | pr_debug("tid %d for %s\n", sdreq->tid, sdreq->uri); |
583 | 583 | ||
584 | memcpy(skb_put(skb, sdreq->tlv_len), sdreq->tlv, | 584 | skb_put_data(skb, sdreq->tlv, sdreq->tlv_len); |
585 | sdreq->tlv_len); | ||
586 | 585 | ||
587 | hlist_del(&sdreq->node); | 586 | hlist_del(&sdreq->node); |
588 | 587 | ||
@@ -622,7 +621,7 @@ int nfc_llcp_send_dm(struct nfc_llcp_local *local, u8 ssap, u8 dsap, u8 reason) | |||
622 | 621 | ||
623 | skb = llcp_add_header(skb, dsap, ssap, LLCP_PDU_DM); | 622 | skb = llcp_add_header(skb, dsap, ssap, LLCP_PDU_DM); |
624 | 623 | ||
625 | memcpy(skb_put(skb, 1), &reason, 1); | 624 | skb_put_data(skb, &reason, 1); |
626 | 625 | ||
627 | skb_queue_head(&local->tx_queue, skb); | 626 | skb_queue_head(&local->tx_queue, skb); |
628 | 627 | ||
@@ -693,7 +692,7 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock, | |||
693 | skb_put(pdu, LLCP_SEQUENCE_SIZE); | 692 | skb_put(pdu, LLCP_SEQUENCE_SIZE); |
694 | 693 | ||
695 | if (likely(frag_len > 0)) | 694 | if (likely(frag_len > 0)) |
696 | memcpy(skb_put(pdu, frag_len), msg_ptr, frag_len); | 695 | skb_put_data(pdu, msg_ptr, frag_len); |
697 | 696 | ||
698 | skb_queue_tail(&sock->tx_queue, pdu); | 697 | skb_queue_tail(&sock->tx_queue, pdu); |
699 | 698 | ||
@@ -759,7 +758,7 @@ int nfc_llcp_send_ui_frame(struct nfc_llcp_sock *sock, u8 ssap, u8 dsap, | |||
759 | pdu = llcp_add_header(pdu, dsap, ssap, LLCP_PDU_UI); | 758 | pdu = llcp_add_header(pdu, dsap, ssap, LLCP_PDU_UI); |
760 | 759 | ||
761 | if (likely(frag_len > 0)) | 760 | if (likely(frag_len > 0)) |
762 | memcpy(skb_put(pdu, frag_len), msg_ptr, frag_len); | 761 | skb_put_data(pdu, msg_ptr, frag_len); |
763 | 762 | ||
764 | /* No need to check for the peer RW for UI frames */ | 763 | /* No need to check for the peer RW for UI frames */ |
765 | skb_queue_tail(&local->tx_queue, pdu); | 764 | skb_queue_tail(&local->tx_queue, pdu); |
diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c index e69786c6804c..02eef5cf3cce 100644 --- a/net/nfc/llcp_core.c +++ b/net/nfc/llcp_core.c | |||
@@ -1390,7 +1390,7 @@ static void nfc_llcp_recv_agf(struct nfc_llcp_local *local, struct sk_buff *skb) | |||
1390 | return; | 1390 | return; |
1391 | } | 1391 | } |
1392 | 1392 | ||
1393 | memcpy(skb_put(new_skb, pdu_len), skb->data, pdu_len); | 1393 | skb_put_data(new_skb, skb->data, pdu_len); |
1394 | 1394 | ||
1395 | nfc_llcp_rx_skb(local, new_skb); | 1395 | nfc_llcp_rx_skb(local, new_skb); |
1396 | 1396 | ||
diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c index 61fff422424f..17b9f1ce23db 100644 --- a/net/nfc/nci/core.c +++ b/net/nfc/nci/core.c | |||
@@ -462,7 +462,7 @@ int nci_nfcc_loopback(struct nci_dev *ndev, void *data, size_t data_len, | |||
462 | return -ENOMEM; | 462 | return -ENOMEM; |
463 | 463 | ||
464 | skb_reserve(skb, NCI_DATA_HDR_SIZE); | 464 | skb_reserve(skb, NCI_DATA_HDR_SIZE); |
465 | memcpy(skb_put(skb, data_len), data, data_len); | 465 | skb_put_data(skb, data, data_len); |
466 | 466 | ||
467 | loopback_data.conn_id = conn_id; | 467 | loopback_data.conn_id = conn_id; |
468 | loopback_data.data = skb; | 468 | loopback_data.data = skb; |
@@ -1350,7 +1350,7 @@ int nci_send_cmd(struct nci_dev *ndev, __u16 opcode, __u8 plen, void *payload) | |||
1350 | nci_pbf_set((__u8 *)hdr, NCI_PBF_LAST); | 1350 | nci_pbf_set((__u8 *)hdr, NCI_PBF_LAST); |
1351 | 1351 | ||
1352 | if (plen) | 1352 | if (plen) |
1353 | memcpy(skb_put(skb, plen), payload, plen); | 1353 | skb_put_data(skb, payload, plen); |
1354 | 1354 | ||
1355 | skb_queue_tail(&ndev->cmd_q, skb); | 1355 | skb_queue_tail(&ndev->cmd_q, skb); |
1356 | queue_work(ndev->cmd_wq, &ndev->cmd_work); | 1356 | queue_work(ndev->cmd_wq, &ndev->cmd_work); |
diff --git a/net/nfc/nci/data.c b/net/nfc/nci/data.c index dbd24254412a..2488d9241f1d 100644 --- a/net/nfc/nci/data.c +++ b/net/nfc/nci/data.c | |||
@@ -138,7 +138,7 @@ static int nci_queue_tx_data_frags(struct nci_dev *ndev, | |||
138 | skb_reserve(skb_frag, NCI_DATA_HDR_SIZE); | 138 | skb_reserve(skb_frag, NCI_DATA_HDR_SIZE); |
139 | 139 | ||
140 | /* first, copy the data */ | 140 | /* first, copy the data */ |
141 | memcpy(skb_put(skb_frag, frag_len), data, frag_len); | 141 | skb_put_data(skb_frag, data, frag_len); |
142 | 142 | ||
143 | /* second, set the header */ | 143 | /* second, set the header */ |
144 | nci_push_data_hdr(ndev, conn_id, skb_frag, | 144 | nci_push_data_hdr(ndev, conn_id, skb_frag, |
diff --git a/net/nfc/nci/hci.c b/net/nfc/nci/hci.c index a0ab26d535dc..d4a53ce818c3 100644 --- a/net/nfc/nci/hci.c +++ b/net/nfc/nci/hci.c | |||
@@ -187,7 +187,7 @@ static int nci_hci_send_data(struct nci_dev *ndev, u8 pipe, | |||
187 | *skb_push(skb, 1) = cb; | 187 | *skb_push(skb, 1) = cb; |
188 | 188 | ||
189 | if (len > 0) | 189 | if (len > 0) |
190 | memcpy(skb_put(skb, len), data + i, len); | 190 | skb_put_data(skb, data + i, len); |
191 | 191 | ||
192 | r = nci_send_data(ndev, conn_info->conn_id, skb); | 192 | r = nci_send_data(ndev, conn_info->conn_id, skb); |
193 | if (r < 0) | 193 | if (r < 0) |
@@ -476,8 +476,9 @@ void nci_hci_data_received_cb(void *context, | |||
476 | 476 | ||
477 | skb_queue_walk(&ndev->hci_dev->rx_hcp_frags, frag_skb) { | 477 | skb_queue_walk(&ndev->hci_dev->rx_hcp_frags, frag_skb) { |
478 | msg_len = frag_skb->len - NCI_HCI_HCP_PACKET_HEADER_LEN; | 478 | msg_len = frag_skb->len - NCI_HCI_HCP_PACKET_HEADER_LEN; |
479 | memcpy(skb_put(hcp_skb, msg_len), frag_skb->data + | 479 | skb_put_data(hcp_skb, |
480 | NCI_HCI_HCP_PACKET_HEADER_LEN, msg_len); | 480 | frag_skb->data + NCI_HCI_HCP_PACKET_HEADER_LEN, |
481 | msg_len); | ||
481 | } | 482 | } |
482 | 483 | ||
483 | skb_queue_purge(&ndev->hci_dev->rx_hcp_frags); | 484 | skb_queue_purge(&ndev->hci_dev->rx_hcp_frags); |
diff --git a/net/nfc/nci/uart.c b/net/nfc/nci/uart.c index c468eabd6943..cfa7f352c1c3 100644 --- a/net/nfc/nci/uart.c +++ b/net/nfc/nci/uart.c | |||
@@ -371,7 +371,7 @@ static int nci_uart_default_recv_buf(struct nci_uart *nu, const u8 *data, | |||
371 | chunk_len = nu->rx_packet_len - nu->rx_skb->len; | 371 | chunk_len = nu->rx_packet_len - nu->rx_skb->len; |
372 | if (count < chunk_len) | 372 | if (count < chunk_len) |
373 | chunk_len = count; | 373 | chunk_len = count; |
374 | memcpy(skb_put(nu->rx_skb, chunk_len), data, chunk_len); | 374 | skb_put_data(nu->rx_skb, data, chunk_len); |
375 | data += chunk_len; | 375 | data += chunk_len; |
376 | count -= chunk_len; | 376 | count -= chunk_len; |
377 | 377 | ||
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c index 825f97671591..cff679167bdc 100644 --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c | |||
@@ -239,7 +239,7 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len) | |||
239 | return -ENOMEM; | 239 | return -ENOMEM; |
240 | 240 | ||
241 | skb_reset_transport_header(skb); | 241 | skb_reset_transport_header(skb); |
242 | memcpy(skb_put(skb, len), data, len); | 242 | skb_put_data(skb, data, len); |
243 | 243 | ||
244 | skb_queue_tail(&node->rx_queue, skb); | 244 | skb_queue_tail(&node->rx_queue, skb); |
245 | schedule_work(&node->work); | 245 | schedule_work(&node->work); |
diff --git a/net/sctp/output.c b/net/sctp/output.c index c339c682675a..febcc350cf00 100644 --- a/net/sctp/output.c +++ b/net/sctp/output.c | |||
@@ -469,8 +469,7 @@ merge: | |||
469 | auth = (struct sctp_auth_chunk *) | 469 | auth = (struct sctp_auth_chunk *) |
470 | skb_tail_pointer(nskb); | 470 | skb_tail_pointer(nskb); |
471 | 471 | ||
472 | memcpy(skb_put(nskb, chunk->skb->len), chunk->skb->data, | 472 | skb_put_data(nskb, chunk->skb->data, chunk->skb->len); |
473 | chunk->skb->len); | ||
474 | 473 | ||
475 | pr_debug("*** Chunk:%p[%s] %s 0x%x, length:%d, chunk->skb->len:%d, rtt_in_progress:%d\n", | 474 | pr_debug("*** Chunk:%p[%s] %s 0x%x, length:%d, chunk->skb->len:%d, rtt_in_progress:%d\n", |
476 | chunk, | 475 | chunk, |
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index aaac2660aaf7..034e916362cf 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c | |||
@@ -1479,9 +1479,7 @@ void *sctp_addto_chunk(struct sctp_chunk *chunk, int len, const void *data) | |||
1479 | int padlen = SCTP_PAD4(chunklen) - chunklen; | 1479 | int padlen = SCTP_PAD4(chunklen) - chunklen; |
1480 | 1480 | ||
1481 | padding = skb_put_zero(chunk->skb, padlen); | 1481 | padding = skb_put_zero(chunk->skb, padlen); |
1482 | target = skb_put(chunk->skb, len); | 1482 | target = skb_put_data(chunk->skb, data, len); |
1483 | |||
1484 | memcpy(target, data, len); | ||
1485 | 1483 | ||
1486 | /* Adjust the chunk length field. */ | 1484 | /* Adjust the chunk length field. */ |
1487 | chunk->chunk_hdr->length = htons(chunklen + padlen + len); | 1485 | chunk->chunk_hdr->length = htons(chunklen + padlen + len); |
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c index 18e24793659f..24e2054bfbaf 100644 --- a/net/vmw_vsock/virtio_transport_common.c +++ b/net/vmw_vsock/virtio_transport_common.c | |||
@@ -132,12 +132,10 @@ static struct sk_buff *virtio_transport_build_skb(void *opaque) | |||
132 | break; | 132 | break; |
133 | } | 133 | } |
134 | 134 | ||
135 | t_hdr = skb_put(skb, sizeof(pkt->hdr)); | 135 | t_hdr = skb_put_data(skb, &pkt->hdr, sizeof(pkt->hdr)); |
136 | memcpy(t_hdr, &pkt->hdr, sizeof(pkt->hdr)); | ||
137 | 136 | ||
138 | if (pkt->len) { | 137 | if (pkt->len) { |
139 | payload = skb_put(skb, pkt->len); | 138 | payload = skb_put_data(skb, pkt->buf, pkt->len); |
140 | memcpy(payload, pkt->buf, pkt->len); | ||
141 | } | 139 | } |
142 | 140 | ||
143 | return skb; | 141 | return skb; |
diff --git a/net/x25/x25_subr.c b/net/x25/x25_subr.c index 6b5af65f491f..eb466ece1730 100644 --- a/net/x25/x25_subr.c +++ b/net/x25/x25_subr.c | |||
@@ -188,17 +188,14 @@ void x25_write_internal(struct sock *sk, int frametype) | |||
188 | *dptr++ = X25_CALL_REQUEST; | 188 | *dptr++ = X25_CALL_REQUEST; |
189 | len = x25_addr_aton(addresses, &x25->dest_addr, | 189 | len = x25_addr_aton(addresses, &x25->dest_addr, |
190 | &x25->source_addr); | 190 | &x25->source_addr); |
191 | dptr = skb_put(skb, len); | 191 | dptr = skb_put_data(skb, addresses, len); |
192 | memcpy(dptr, addresses, len); | ||
193 | len = x25_create_facilities(facilities, | 192 | len = x25_create_facilities(facilities, |
194 | &x25->facilities, | 193 | &x25->facilities, |
195 | &x25->dte_facilities, | 194 | &x25->dte_facilities, |
196 | x25->neighbour->global_facil_mask); | 195 | x25->neighbour->global_facil_mask); |
197 | dptr = skb_put(skb, len); | 196 | dptr = skb_put_data(skb, facilities, len); |
198 | memcpy(dptr, facilities, len); | 197 | dptr = skb_put_data(skb, x25->calluserdata.cuddata, |
199 | dptr = skb_put(skb, x25->calluserdata.cudlength); | 198 | x25->calluserdata.cudlength); |
200 | memcpy(dptr, x25->calluserdata.cuddata, | ||
201 | x25->calluserdata.cudlength); | ||
202 | x25->calluserdata.cudlength = 0; | 199 | x25->calluserdata.cudlength = 0; |
203 | break; | 200 | break; |
204 | 201 | ||
@@ -210,17 +207,15 @@ void x25_write_internal(struct sock *sk, int frametype) | |||
210 | &x25->facilities, | 207 | &x25->facilities, |
211 | &x25->dte_facilities, | 208 | &x25->dte_facilities, |
212 | x25->vc_facil_mask); | 209 | x25->vc_facil_mask); |
213 | dptr = skb_put(skb, len); | 210 | dptr = skb_put_data(skb, facilities, len); |
214 | memcpy(dptr, facilities, len); | ||
215 | 211 | ||
216 | /* fast select with no restriction on response | 212 | /* fast select with no restriction on response |
217 | allows call user data. Userland must | 213 | allows call user data. Userland must |
218 | ensure it is ours and not theirs */ | 214 | ensure it is ours and not theirs */ |
219 | if(x25->facilities.reverse & 0x80) { | 215 | if(x25->facilities.reverse & 0x80) { |
220 | dptr = skb_put(skb, | 216 | dptr = skb_put_data(skb, |
221 | x25->calluserdata.cudlength); | 217 | x25->calluserdata.cuddata, |
222 | memcpy(dptr, x25->calluserdata.cuddata, | 218 | x25->calluserdata.cudlength); |
223 | x25->calluserdata.cudlength); | ||
224 | } | 219 | } |
225 | x25->calluserdata.cudlength = 0; | 220 | x25->calluserdata.cudlength = 0; |
226 | break; | 221 | break; |