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: netdev-ow...@vger.kernel.org [mailto:netdev-ow...@vger.kernel.org] > On Behalf Of Johannes Berg > Sent: Thursday, June 15, 2017 4:18 AM > To: netdev@vger.kernel.org > Cc: Johannes Berg > Subject: [RFC] networking: convert many more places to skb_put_zero() > > From: Johannes Berg <johannes.b...@intel.com> > > 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)); > ) >