Hi,
Indeed, it find more.
Compare with my patch, still lost pattern like below,
1. sctp and openvswitch
--- a/net/sctp/output.c
+++ b/net/sctp/output.c
@@ -463,7 +463,7 @@ static int sctp_packet_pack(struct sctp_packet *packet,
padding = SCTP_PAD4(chunk->skb->len) - chunk->skb->len;
if (padding)
- memset(skb_put(chunk->skb, padding), 0,
padding);
+ skb_put_zero(chunk->skb, padding);
--- a/net/dsa/tag_trailer.c
+++ b/net/dsa/tag_trailer.c
@@ -43,8 +43,7 @@ static struct sk_buff *trailer_xmit(struct sk_buff *skb,
struct net_device *dev)
kfree_skb(skb);
if (padlen) {
- u8 *pad = skb_put(nskb, padlen);
- memset(pad, 0, padlen);
+ skb_put_zero(nskb, padlen);
I will send a separate patch for ipv6/ndisc.c once spatch done.
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On Behalf Of Johannes Berg
> Sent: Thursday, June 15, 2017 4:18 AM
> To: [email protected]
> Cc: Johannes Berg
> Subject: [RFC] networking: convert many more places to skb_put_zero()
>
> From: Johannes Berg <[email protected]>
>
> There were many places that my previous spatch didn't find,
> as pointed out by yuan linyu in various patches.
>
> The following spatch found many more and also removes the
> now unnecessary casts:
>
> @@
> identifier p, p2;
> expression len;
> expression skb;
> type t, t2;
> @@
> (
> -p = skb_put(skb, len);
> +p = skb_put_zero(skb, len);
> |
> -p = (t)skb_put(skb, len);
> +p = skb_put_zero(skb, len);
> )
> (
> p2 = (t2)p;
> -memset(p2, 0, len);
> |
> -memset(p, 0, len);
> )
>
> @@
> type t, t2;
> identifier p, p2;
> expression skb;
> @@
> t *p;
> ...
> (
> -p = skb_put(skb, sizeof(t));
> +p = skb_put_zero(skb, sizeof(t));
> |
> -p = (t *)skb_put(skb, sizeof(t));
> +p = skb_put_zero(skb, sizeof(t));
> )
> (
> p2 = (t2)p;
> -memset(p2, 0, sizeof(*p));
> |
> -memset(p, 0, sizeof(*p));
> )
>