mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
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 <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
b080db5853
commit
59ae1d127a
252 changed files with 622 additions and 741 deletions
|
|
@ -226,8 +226,7 @@ digital_send_dep_data_prep(struct nfc_digital_dev *ddev, struct sk_buff *skb,
|
|||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
memcpy(skb_put(new_skb, ddev->remote_payload_max), skb->data,
|
||||
ddev->remote_payload_max);
|
||||
skb_put_data(new_skb, skb->data, ddev->remote_payload_max);
|
||||
skb_pull(skb, ddev->remote_payload_max);
|
||||
|
||||
ddev->chaining_skb = skb;
|
||||
|
|
@ -277,8 +276,7 @@ digital_recv_dep_data_gather(struct nfc_digital_dev *ddev, u8 pfb,
|
|||
ddev->chaining_skb = new_skb;
|
||||
}
|
||||
|
||||
memcpy(skb_put(ddev->chaining_skb, resp->len), resp->data,
|
||||
resp->len);
|
||||
skb_put_data(ddev->chaining_skb, resp->data, resp->len);
|
||||
|
||||
kfree_skb(resp);
|
||||
resp = NULL;
|
||||
|
|
@ -525,7 +523,7 @@ int digital_in_send_atr_req(struct nfc_digital_dev *ddev,
|
|||
|
||||
if (gb_len) {
|
||||
atr_req->pp |= DIGITAL_GB_BIT;
|
||||
memcpy(skb_put(skb, gb_len), gb, gb_len);
|
||||
skb_put_data(skb, gb, gb_len);
|
||||
}
|
||||
|
||||
digital_skb_push_dep_sod(ddev, skb);
|
||||
|
|
@ -1012,8 +1010,7 @@ static int digital_tg_send_ack(struct nfc_digital_dev *ddev,
|
|||
if (ddev->did) {
|
||||
dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT;
|
||||
|
||||
memcpy(skb_put(skb, sizeof(ddev->did)), &ddev->did,
|
||||
sizeof(ddev->did));
|
||||
skb_put_data(skb, &ddev->did, sizeof(ddev->did));
|
||||
}
|
||||
|
||||
ddev->curr_nfc_dep_pni =
|
||||
|
|
@ -1057,8 +1054,7 @@ static int digital_tg_send_atn(struct nfc_digital_dev *ddev)
|
|||
if (ddev->did) {
|
||||
dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT;
|
||||
|
||||
memcpy(skb_put(skb, sizeof(ddev->did)), &ddev->did,
|
||||
sizeof(ddev->did));
|
||||
skb_put_data(skb, &ddev->did, sizeof(ddev->did));
|
||||
}
|
||||
|
||||
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)
|
|||
if (ddev->did) {
|
||||
dep_res->pfb |= DIGITAL_NFC_DEP_PFB_DID_BIT;
|
||||
|
||||
memcpy(skb_put(skb, sizeof(ddev->did)), &ddev->did,
|
||||
sizeof(ddev->did));
|
||||
skb_put_data(skb, &ddev->did, sizeof(ddev->did));
|
||||
}
|
||||
|
||||
ddev->curr_nfc_dep_pni =
|
||||
|
|
|
|||
|
|
@ -878,9 +878,9 @@ static void nfc_hci_recv_from_llc(struct nfc_hci_dev *hdev, struct sk_buff *skb)
|
|||
|
||||
skb_queue_walk(&hdev->rx_hcp_frags, frag_skb) {
|
||||
msg_len = frag_skb->len - NFC_HCI_HCP_PACKET_HEADER_LEN;
|
||||
memcpy(skb_put(hcp_skb, msg_len),
|
||||
frag_skb->data + NFC_HCI_HCP_PACKET_HEADER_LEN,
|
||||
msg_len);
|
||||
skb_put_data(hcp_skb,
|
||||
frag_skb->data + NFC_HCI_HCP_PACKET_HEADER_LEN,
|
||||
msg_len);
|
||||
}
|
||||
|
||||
skb_queue_purge(&hdev->rx_hcp_frags);
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ static struct sk_buff *llcp_add_header(struct sk_buff *pdu,
|
|||
|
||||
pr_debug("header 0x%x 0x%x\n", header[0], header[1]);
|
||||
|
||||
memcpy(skb_put(pdu, LLCP_HEADER_SIZE), header, LLCP_HEADER_SIZE);
|
||||
skb_put_data(pdu, header, LLCP_HEADER_SIZE);
|
||||
|
||||
return pdu;
|
||||
}
|
||||
|
|
@ -311,7 +311,7 @@ static struct sk_buff *llcp_add_tlv(struct sk_buff *pdu, u8 *tlv,
|
|||
if (tlv == NULL)
|
||||
return NULL;
|
||||
|
||||
memcpy(skb_put(pdu, tlv_length), tlv, tlv_length);
|
||||
skb_put_data(pdu, tlv, tlv_length);
|
||||
|
||||
return pdu;
|
||||
}
|
||||
|
|
@ -549,7 +549,7 @@ int nfc_llcp_send_snl_sdres(struct nfc_llcp_local *local,
|
|||
return PTR_ERR(skb);
|
||||
|
||||
hlist_for_each_entry_safe(sdp, n, tlv_list, node) {
|
||||
memcpy(skb_put(skb, sdp->tlv_len), sdp->tlv, sdp->tlv_len);
|
||||
skb_put_data(skb, sdp->tlv, sdp->tlv_len);
|
||||
|
||||
hlist_del(&sdp->node);
|
||||
|
||||
|
|
@ -581,8 +581,7 @@ int nfc_llcp_send_snl_sdreq(struct nfc_llcp_local *local,
|
|||
hlist_for_each_entry_safe(sdreq, n, tlv_list, node) {
|
||||
pr_debug("tid %d for %s\n", sdreq->tid, sdreq->uri);
|
||||
|
||||
memcpy(skb_put(skb, sdreq->tlv_len), sdreq->tlv,
|
||||
sdreq->tlv_len);
|
||||
skb_put_data(skb, sdreq->tlv, sdreq->tlv_len);
|
||||
|
||||
hlist_del(&sdreq->node);
|
||||
|
||||
|
|
@ -622,7 +621,7 @@ int nfc_llcp_send_dm(struct nfc_llcp_local *local, u8 ssap, u8 dsap, u8 reason)
|
|||
|
||||
skb = llcp_add_header(skb, dsap, ssap, LLCP_PDU_DM);
|
||||
|
||||
memcpy(skb_put(skb, 1), &reason, 1);
|
||||
skb_put_data(skb, &reason, 1);
|
||||
|
||||
skb_queue_head(&local->tx_queue, skb);
|
||||
|
||||
|
|
@ -693,7 +692,7 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock,
|
|||
skb_put(pdu, LLCP_SEQUENCE_SIZE);
|
||||
|
||||
if (likely(frag_len > 0))
|
||||
memcpy(skb_put(pdu, frag_len), msg_ptr, frag_len);
|
||||
skb_put_data(pdu, msg_ptr, frag_len);
|
||||
|
||||
skb_queue_tail(&sock->tx_queue, pdu);
|
||||
|
||||
|
|
@ -759,7 +758,7 @@ int nfc_llcp_send_ui_frame(struct nfc_llcp_sock *sock, u8 ssap, u8 dsap,
|
|||
pdu = llcp_add_header(pdu, dsap, ssap, LLCP_PDU_UI);
|
||||
|
||||
if (likely(frag_len > 0))
|
||||
memcpy(skb_put(pdu, frag_len), msg_ptr, frag_len);
|
||||
skb_put_data(pdu, msg_ptr, frag_len);
|
||||
|
||||
/* No need to check for the peer RW for UI frames */
|
||||
skb_queue_tail(&local->tx_queue, pdu);
|
||||
|
|
|
|||
|
|
@ -1390,7 +1390,7 @@ static void nfc_llcp_recv_agf(struct nfc_llcp_local *local, struct sk_buff *skb)
|
|||
return;
|
||||
}
|
||||
|
||||
memcpy(skb_put(new_skb, pdu_len), skb->data, pdu_len);
|
||||
skb_put_data(new_skb, skb->data, pdu_len);
|
||||
|
||||
nfc_llcp_rx_skb(local, new_skb);
|
||||
|
||||
|
|
|
|||
|
|
@ -462,7 +462,7 @@ int nci_nfcc_loopback(struct nci_dev *ndev, void *data, size_t data_len,
|
|||
return -ENOMEM;
|
||||
|
||||
skb_reserve(skb, NCI_DATA_HDR_SIZE);
|
||||
memcpy(skb_put(skb, data_len), data, data_len);
|
||||
skb_put_data(skb, data, data_len);
|
||||
|
||||
loopback_data.conn_id = conn_id;
|
||||
loopback_data.data = skb;
|
||||
|
|
@ -1350,7 +1350,7 @@ int nci_send_cmd(struct nci_dev *ndev, __u16 opcode, __u8 plen, void *payload)
|
|||
nci_pbf_set((__u8 *)hdr, NCI_PBF_LAST);
|
||||
|
||||
if (plen)
|
||||
memcpy(skb_put(skb, plen), payload, plen);
|
||||
skb_put_data(skb, payload, plen);
|
||||
|
||||
skb_queue_tail(&ndev->cmd_q, skb);
|
||||
queue_work(ndev->cmd_wq, &ndev->cmd_work);
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ static int nci_queue_tx_data_frags(struct nci_dev *ndev,
|
|||
skb_reserve(skb_frag, NCI_DATA_HDR_SIZE);
|
||||
|
||||
/* first, copy the data */
|
||||
memcpy(skb_put(skb_frag, frag_len), data, frag_len);
|
||||
skb_put_data(skb_frag, data, frag_len);
|
||||
|
||||
/* second, set the header */
|
||||
nci_push_data_hdr(ndev, conn_id, skb_frag,
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ static int nci_hci_send_data(struct nci_dev *ndev, u8 pipe,
|
|||
*skb_push(skb, 1) = cb;
|
||||
|
||||
if (len > 0)
|
||||
memcpy(skb_put(skb, len), data + i, len);
|
||||
skb_put_data(skb, data + i, len);
|
||||
|
||||
r = nci_send_data(ndev, conn_info->conn_id, skb);
|
||||
if (r < 0)
|
||||
|
|
@ -476,8 +476,9 @@ void nci_hci_data_received_cb(void *context,
|
|||
|
||||
skb_queue_walk(&ndev->hci_dev->rx_hcp_frags, frag_skb) {
|
||||
msg_len = frag_skb->len - NCI_HCI_HCP_PACKET_HEADER_LEN;
|
||||
memcpy(skb_put(hcp_skb, msg_len), frag_skb->data +
|
||||
NCI_HCI_HCP_PACKET_HEADER_LEN, msg_len);
|
||||
skb_put_data(hcp_skb,
|
||||
frag_skb->data + NCI_HCI_HCP_PACKET_HEADER_LEN,
|
||||
msg_len);
|
||||
}
|
||||
|
||||
skb_queue_purge(&ndev->hci_dev->rx_hcp_frags);
|
||||
|
|
|
|||
|
|
@ -371,7 +371,7 @@ static int nci_uart_default_recv_buf(struct nci_uart *nu, const u8 *data,
|
|||
chunk_len = nu->rx_packet_len - nu->rx_skb->len;
|
||||
if (count < chunk_len)
|
||||
chunk_len = count;
|
||||
memcpy(skb_put(nu->rx_skb, chunk_len), data, chunk_len);
|
||||
skb_put_data(nu->rx_skb, data, chunk_len);
|
||||
data += chunk_len;
|
||||
count -= chunk_len;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue