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
|
|
@ -228,8 +228,7 @@ static int fdp_nci_send_patch(struct nci_dev *ndev, u8 conn_id, u8 type)
|
|||
|
||||
skb_reserve(skb, NCI_CTRL_HDR_SIZE);
|
||||
|
||||
memcpy(skb_put(skb, payload_size), fw->data + (fw->size - len),
|
||||
payload_size);
|
||||
skb_put_data(skb, fw->data + (fw->size - len), payload_size);
|
||||
|
||||
rc = nci_send_data(ndev, conn_id, skb);
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ static int fdp_nci_i2c_read(struct fdp_i2c_phy *phy, struct sk_buff **skb)
|
|||
goto flush;
|
||||
}
|
||||
|
||||
memcpy(skb_put(*skb, len), tmp, len);
|
||||
skb_put_data(*skb, tmp, len);
|
||||
fdp_nci_i2c_dump_skb(&client->dev, "fdp_rd", *skb);
|
||||
|
||||
fdp_nci_i2c_remove_len_lrc(*skb);
|
||||
|
|
|
|||
|
|
@ -324,10 +324,9 @@ static int process_state_fw_dnld(struct nfcmrvl_private *priv,
|
|||
out_skb = alloc_lc_skb(priv, priv->fw_dnld.chunk_len);
|
||||
if (!out_skb)
|
||||
return -ENOMEM;
|
||||
memcpy(skb_put(out_skb, priv->fw_dnld.chunk_len),
|
||||
((uint8_t *)priv->fw_dnld.fw->data) +
|
||||
priv->fw_dnld.offset,
|
||||
priv->fw_dnld.chunk_len);
|
||||
skb_put_data(out_skb,
|
||||
((uint8_t *)priv->fw_dnld.fw->data) + priv->fw_dnld.offset,
|
||||
priv->fw_dnld.chunk_len);
|
||||
nci_send_frame(priv->ndev, out_skb);
|
||||
priv->fw_dnld.substate = SUBSTATE_WAIT_DATA_CREDIT;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ static int nfcmrvl_i2c_read(struct nfcmrvl_i2c_drv_data *drv_data,
|
|||
return -ENOMEM;
|
||||
|
||||
/* Copy NCI header into the SKB */
|
||||
memcpy(skb_put(*skb, NCI_CTRL_HDR_SIZE), &nci_hdr, NCI_CTRL_HDR_SIZE);
|
||||
skb_put_data(*skb, &nci_hdr, NCI_CTRL_HDR_SIZE);
|
||||
|
||||
if (nci_hdr.plen) {
|
||||
/* Read the NCI payload */
|
||||
|
|
|
|||
|
|
@ -83,8 +83,8 @@ static void nfcmrvl_bulk_complete(struct urb *urb)
|
|||
if (!skb) {
|
||||
nfc_err(&drv_data->udev->dev, "failed to alloc mem\n");
|
||||
} else {
|
||||
memcpy(skb_put(skb, urb->actual_length),
|
||||
urb->transfer_buffer, urb->actual_length);
|
||||
skb_put_data(skb, urb->transfer_buffer,
|
||||
urb->actual_length);
|
||||
if (nfcmrvl_nci_recv_frame(drv_data->priv, skb) < 0)
|
||||
nfc_err(&drv_data->udev->dev,
|
||||
"corrupted Rx packet\n");
|
||||
|
|
|
|||
|
|
@ -124,8 +124,7 @@ static int nxp_nci_fw_send_chunk(struct nxp_nci_info *info)
|
|||
header |= chunk_len & NXP_NCI_FW_FRAME_LEN_MASK;
|
||||
put_unaligned_be16(header, skb_put(skb, NXP_NCI_FW_HDR_LEN));
|
||||
|
||||
memcpy(skb_put(skb, chunk_len), fw_info->data + fw_info->written,
|
||||
chunk_len);
|
||||
skb_put_data(skb, fw_info->data + fw_info->written, chunk_len);
|
||||
|
||||
crc = nxp_nci_fw_crc(skb->data, chunk_len + NXP_NCI_FW_HDR_LEN);
|
||||
put_unaligned_be16(crc, skb_put(skb, NXP_NCI_FW_CRC_LEN));
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ static int nxp_nci_i2c_fw_read(struct nxp_nci_i2c_phy *phy,
|
|||
goto fw_read_exit;
|
||||
}
|
||||
|
||||
memcpy(skb_put(*skb, NXP_NCI_FW_HDR_LEN), &header, NXP_NCI_FW_HDR_LEN);
|
||||
skb_put_data(*skb, &header, NXP_NCI_FW_HDR_LEN);
|
||||
|
||||
r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len);
|
||||
if (r != frame_len) {
|
||||
|
|
@ -176,8 +176,7 @@ static int nxp_nci_i2c_nci_read(struct nxp_nci_i2c_phy *phy,
|
|||
goto nci_read_exit;
|
||||
}
|
||||
|
||||
memcpy(skb_put(*skb, NCI_CTRL_HDR_SIZE), (void *) &header,
|
||||
NCI_CTRL_HDR_SIZE);
|
||||
skb_put_data(*skb, (void *)&header, NCI_CTRL_HDR_SIZE);
|
||||
|
||||
r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen);
|
||||
if (r != header.plen) {
|
||||
|
|
|
|||
|
|
@ -1035,11 +1035,10 @@ static struct sk_buff *pn533_alloc_poll_tg_frame(struct pn533 *dev)
|
|||
*skb_put(skb, 1) = PN533_INIT_TARGET_DEP;
|
||||
|
||||
/* MIFARE params */
|
||||
memcpy(skb_put(skb, 6), mifare_params, 6);
|
||||
skb_put_data(skb, mifare_params, 6);
|
||||
|
||||
/* Felica params */
|
||||
felica = skb_put(skb, 18);
|
||||
memcpy(felica, felica_params, 18);
|
||||
felica = skb_put_data(skb, felica_params, 18);
|
||||
get_random_bytes(felica + 2, 6);
|
||||
|
||||
/* NFCID3 */
|
||||
|
|
@ -1049,8 +1048,7 @@ static struct sk_buff *pn533_alloc_poll_tg_frame(struct pn533 *dev)
|
|||
/* General bytes */
|
||||
*skb_put(skb, 1) = gbytes_len;
|
||||
|
||||
gb = skb_put(skb, gbytes_len);
|
||||
memcpy(gb, gbytes, gbytes_len);
|
||||
gb = skb_put_data(skb, gbytes, gbytes_len);
|
||||
|
||||
/* Len Tk */
|
||||
*skb_put(skb, 1) = 0;
|
||||
|
|
@ -1384,15 +1382,14 @@ static int pn533_poll_dep(struct nfc_dev *nfc_dev)
|
|||
*next = 0;
|
||||
|
||||
/* Copy passive data */
|
||||
memcpy(skb_put(skb, PASSIVE_DATA_LEN), passive_data, PASSIVE_DATA_LEN);
|
||||
skb_put_data(skb, passive_data, PASSIVE_DATA_LEN);
|
||||
*next |= 1;
|
||||
|
||||
/* Copy NFCID3 (which is NFCID2 from SENSF_RES) */
|
||||
memcpy(skb_put(skb, NFC_NFCID3_MAXSIZE), nfcid3,
|
||||
NFC_NFCID3_MAXSIZE);
|
||||
skb_put_data(skb, nfcid3, NFC_NFCID3_MAXSIZE);
|
||||
*next |= 2;
|
||||
|
||||
memcpy(skb_put(skb, dev->gb_len), dev->gb, dev->gb_len);
|
||||
skb_put_data(skb, dev->gb, dev->gb_len);
|
||||
*next |= 4; /* We have some Gi */
|
||||
|
||||
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,
|
|||
if (!skb)
|
||||
return NULL;
|
||||
|
||||
memcpy(skb_put(skb, mod->len), &mod->data, mod->len);
|
||||
skb_put_data(skb, &mod->data, mod->len);
|
||||
|
||||
return skb;
|
||||
}
|
||||
|
|
@ -1858,7 +1855,7 @@ static int pn533_dep_link_up(struct nfc_dev *nfc_dev, struct nfc_target *target,
|
|||
*next = 0;
|
||||
|
||||
/* Copy passive data */
|
||||
memcpy(skb_put(skb, PASSIVE_DATA_LEN), passive_data, PASSIVE_DATA_LEN);
|
||||
skb_put_data(skb, passive_data, PASSIVE_DATA_LEN);
|
||||
*next |= 1;
|
||||
|
||||
/* 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,
|
|||
memcpy(skb_put(skb, NFC_NFCID3_MAXSIZE), target->nfcid2,
|
||||
target->nfcid2_len);
|
||||
else
|
||||
memcpy(skb_put(skb, NFC_NFCID3_MAXSIZE), nfcid3,
|
||||
NFC_NFCID3_MAXSIZE);
|
||||
skb_put_data(skb, nfcid3, NFC_NFCID3_MAXSIZE);
|
||||
*next |= 2;
|
||||
|
||||
if (gb != NULL && gb_len > 0) {
|
||||
memcpy(skb_put(skb, gb_len), gb, gb_len);
|
||||
skb_put_data(skb, gb, gb_len);
|
||||
*next |= 4; /* We have some Gi */
|
||||
} else {
|
||||
*next = 0;
|
||||
|
|
@ -2100,7 +2096,7 @@ static int pn533_fill_fragment_skbs(struct pn533 *dev, struct sk_buff *skb)
|
|||
*skb_push(frag, sizeof(u8)) = 1; /* TG */
|
||||
}
|
||||
|
||||
memcpy(skb_put(frag, frag_size), skb->data, frag_size);
|
||||
skb_put_data(frag, skb->data, frag_size);
|
||||
|
||||
/* Reduce the size of incoming buffer */
|
||||
skb_pull(skb, frag_size);
|
||||
|
|
@ -2375,7 +2371,7 @@ static int pn533_set_configuration(struct pn533 *dev, u8 cfgitem, u8 *cfgdata,
|
|||
return -ENOMEM;
|
||||
|
||||
*skb_put(skb, sizeof(cfgitem)) = cfgitem;
|
||||
memcpy(skb_put(skb, cfgdata_len), cfgdata, cfgdata_len);
|
||||
skb_put_data(skb, cfgdata, cfgdata_len);
|
||||
|
||||
resp = pn533_send_cmd_sync(dev, PN533_CMD_RF_CONFIGURATION, skb);
|
||||
if (IS_ERR(resp))
|
||||
|
|
|
|||
|
|
@ -75,8 +75,8 @@ static void pn533_recv_response(struct urb *urb)
|
|||
if (!skb) {
|
||||
nfc_err(&phy->udev->dev, "failed to alloc memory\n");
|
||||
} else {
|
||||
memcpy(skb_put(skb, urb->actual_length),
|
||||
urb->transfer_buffer, urb->actual_length);
|
||||
skb_put_data(skb, urb->transfer_buffer,
|
||||
urb->actual_length);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1089,9 +1089,8 @@ static int port100_in_set_rf(struct nfc_digital_dev *ddev, u8 rf)
|
|||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
memcpy(skb_put(skb, sizeof(struct port100_in_rf_setting)),
|
||||
&in_rf_settings[rf],
|
||||
sizeof(struct port100_in_rf_setting));
|
||||
skb_put_data(skb, &in_rf_settings[rf],
|
||||
sizeof(struct port100_in_rf_setting));
|
||||
|
||||
resp = port100_send_cmd_sync(dev, PORT100_CMD_IN_SET_RF, skb);
|
||||
|
||||
|
|
@ -1133,7 +1132,7 @@ static int port100_in_set_framing(struct nfc_digital_dev *ddev, int param)
|
|||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
memcpy(skb_put(skb, size), protocols, size);
|
||||
skb_put_data(skb, protocols, size);
|
||||
|
||||
resp = port100_send_cmd_sync(dev, PORT100_CMD_IN_SET_PROTOCOL, skb);
|
||||
|
||||
|
|
@ -1247,9 +1246,8 @@ static int port100_tg_set_rf(struct nfc_digital_dev *ddev, u8 rf)
|
|||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
memcpy(skb_put(skb, sizeof(struct port100_tg_rf_setting)),
|
||||
&tg_rf_settings[rf],
|
||||
sizeof(struct port100_tg_rf_setting));
|
||||
skb_put_data(skb, &tg_rf_settings[rf],
|
||||
sizeof(struct port100_tg_rf_setting));
|
||||
|
||||
resp = port100_send_cmd_sync(dev, PORT100_CMD_TG_SET_RF, skb);
|
||||
|
||||
|
|
@ -1291,7 +1289,7 @@ static int port100_tg_set_framing(struct nfc_digital_dev *ddev, int param)
|
|||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
memcpy(skb_put(skb, size), protocols, size);
|
||||
skb_put_data(skb, protocols, size);
|
||||
|
||||
resp = port100_send_cmd_sync(dev, PORT100_CMD_TG_SET_PROTOCOL, skb);
|
||||
|
||||
|
|
|
|||
|
|
@ -76,9 +76,9 @@ static int s3fwrn5_fw_prep_msg(struct s3fwrn5_fw_info *fw_info,
|
|||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
memcpy(skb_put(skb, S3FWRN5_FW_HDR_SIZE), &hdr, S3FWRN5_FW_HDR_SIZE);
|
||||
skb_put_data(skb, &hdr, S3FWRN5_FW_HDR_SIZE);
|
||||
if (len)
|
||||
memcpy(skb_put(skb, len), data, len);
|
||||
skb_put_data(skb, data, len);
|
||||
|
||||
*msg = skb;
|
||||
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ static int s3fwrn5_i2c_read(struct s3fwrn5_i2c_phy *phy)
|
|||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
memcpy(skb_put(skb, hdr_size), hdr, hdr_size);
|
||||
skb_put_data(skb, hdr, hdr_size);
|
||||
|
||||
if (data_len == 0)
|
||||
goto out;
|
||||
|
|
|
|||
|
|
@ -564,7 +564,7 @@ int st21nfca_im_send_atr_req(struct nfc_hci_dev *hdev, u8 *gb, size_t gb_len)
|
|||
atr_req->ppi = ST21NFCA_LR_BITS_PAYLOAD_SIZE_254B;
|
||||
if (gb_len) {
|
||||
atr_req->ppi |= ST21NFCA_GB_BIT;
|
||||
memcpy(skb_put(skb, gb_len), gb, gb_len);
|
||||
skb_put_data(skb, gb, gb_len);
|
||||
}
|
||||
atr_req->length = sizeof(struct st21nfca_atr_req) + hdev->gb_len;
|
||||
|
||||
|
|
|
|||
|
|
@ -407,7 +407,7 @@ static int st21nfca_hci_i2c_read(struct st21nfca_i2c_phy *phy,
|
|||
phy->current_read_len = 0;
|
||||
}
|
||||
|
||||
memcpy(skb_put(skb, len), buf, len);
|
||||
skb_put_data(skb, buf, len);
|
||||
|
||||
if (skb->data[skb->len - 1] == ST21NFCA_SOF_EOF) {
|
||||
phy->current_read_len = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue