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 /drivers/net/caif | |
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>
Diffstat (limited to 'drivers/net/caif')
-rw-r--r-- | drivers/net/caif/caif_hsi.c | 6 | ||||
-rw-r--r-- | drivers/net/caif/caif_serial.c | 3 | ||||
-rw-r--r-- | drivers/net/caif/caif_spi.c | 3 | ||||
-rw-r--r-- | drivers/net/caif/caif_virtio.c | 2 |
4 files changed, 5 insertions, 9 deletions
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 | ||