summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2017-06-16 14:29:24 +0200
committerDavid S. Miller <davem@davemloft.net>2017-06-16 17:48:40 +0200
commit634fef61076d644b989b86abc2f560d81a089a31 (patch)
tree41e0cfc0c640666a75ad07588df34addb18176d0 /drivers/net
parentnetworking: make skb_push & __skb_push return void pointers (diff)
downloadlinux-634fef61076d644b989b86abc2f560d81a089a31.tar.xz
linux-634fef61076d644b989b86abc2f560d81a089a31.zip
networking: add and use skb_put_u8()
Joe and Bjørn suggested that it'd be nicer to not have the cast in the fairly common case of doing *(u8 *)skb_put(skb, 1) = c; Add skb_put_u8() for this case, and use it across the code, using the following spatch: @@ expression SKB, C, S; typedef u8; identifier fn = {skb_put}; fresh identifier fn2 = fn ## "_u8"; @@ - *(u8 *)fn(SKB, S) = C; + fn2(SKB, C); Note that due to the "S", the spatch isn't perfect, it should have checked that S is 1, but there's also places that use a sizeof expression like sizeof(var) or sizeof(u8) etc. Turns out that nobody ever did something like *(u8 *)skb_put(skb, 2) = c; which would be wrong anyway since the second byte wouldn't be initialized. Suggested-by: Joe Perches <joe@perches.com> Suggested-by: Bjørn Mork <bjorn@mork.no> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/hamradio/scc.c4
-rw-r--r--drivers/net/usb/cdc_ncm.c2
-rw-r--r--drivers/net/usb/net1080.c2
-rw-r--r--drivers/net/usb/zaurus.c8
4 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c
index 140a209f22ab..295f267b73ea 100644
--- a/drivers/net/hamradio/scc.c
+++ b/drivers/net/hamradio/scc.c
@@ -540,7 +540,7 @@ static inline void scc_rxint(struct scc_channel *scc)
}
scc->rx_buff = skb;
- *(u8 *)skb_put(skb, 1) = 0; /* KISS data */
+ skb_put_u8(skb, 0); /* KISS data */
}
if (skb->len >= scc->stat.bufsize)
@@ -555,7 +555,7 @@ static inline void scc_rxint(struct scc_channel *scc)
return;
}
- *(u8 *)skb_put(skb, 1) = Inb(scc->data);
+ skb_put_u8(skb, Inb(scc->data));
}
diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index 4d4837a0645b..bcb974707118 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -1250,7 +1250,7 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev, struct sk_buff *skb, __le32 sign)
skb_put_zero(skb_out, padding_count);
} else if (skb_out->len < ctx->tx_max &&
(skb_out->len % dev->maxpacket) == 0) {
- *(u8 *)skb_put(skb_out, 1) = 0; /* force short packet */
+ skb_put_u8(skb_out, 0); /* force short packet */
}
/* set final frame length */
diff --git a/drivers/net/usb/net1080.c b/drivers/net/usb/net1080.c
index be53ff30b7b5..18a13aa5fcbb 100644
--- a/drivers/net/usb/net1080.c
+++ b/drivers/net/usb/net1080.c
@@ -473,7 +473,7 @@ encapsulate:
/* maybe pad; then trailer */
if (!((skb->len + sizeof *trailer) & 0x01))
- *(u8 *)skb_put(skb, 1) = PAD_BYTE;
+ skb_put_u8(skb, PAD_BYTE);
trailer = skb_put(skb, sizeof *trailer);
put_unaligned(header->packet_id, &trailer->packet_id);
#if 0
diff --git a/drivers/net/usb/zaurus.c b/drivers/net/usb/zaurus.c
index dc3cd03763af..9c2196c3fd11 100644
--- a/drivers/net/usb/zaurus.c
+++ b/drivers/net/usb/zaurus.c
@@ -74,10 +74,10 @@ done:
fcs = crc32_le(~0, skb->data, skb->len);
fcs = ~fcs;
- *(u8 *)skb_put(skb, 1) = fcs & 0xff;
- *(u8 *)skb_put(skb, 1) = (fcs>> 8) & 0xff;
- *(u8 *)skb_put(skb, 1) = (fcs>>16) & 0xff;
- *(u8 *)skb_put(skb, 1) = (fcs>>24) & 0xff;
+ skb_put_u8(skb, fcs & 0xff);
+ skb_put_u8(skb, (fcs >> 8) & 0xff);
+ skb_put_u8(skb, (fcs >> 16) & 0xff);
+ skb_put_u8(skb, (fcs >> 24) & 0xff);
}
return skb;
}