On Sun, Nov 26, 2017 at 08:16:07PM +0800, Xin Long wrote: > Now sctp_csum_xxx doesn't really match the param types of these common > csum apis. As sctp_csum_xxx is defined in sctp/checksum.h, many sparse > errors occur when make C=2 not only with M=net/sctp but also with other > modules that include this header file. > > This patch is to force them fit in csum apis with the right types. > > Fixes: e6d8b64b34aa ("net: sctp: fix and consolidate SCTP checksumming code") > Signed-off-by: Xin Long <lucien.xin@xxxxxxxxx> Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx> > --- > include/net/sctp/checksum.h | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h > index 4a5b9a3..32ee65a 100644 > --- a/include/net/sctp/checksum.h > +++ b/include/net/sctp/checksum.h > @@ -48,31 +48,32 @@ static inline __wsum sctp_csum_update(const void *buff, int len, __wsum sum) > /* This uses the crypto implementation of crc32c, which is either > * implemented w/ hardware support or resolves to __crc32c_le(). > */ > - return crc32c(sum, buff, len); > + return (__force __wsum)crc32c((__force __u32)sum, buff, len); > } > > static inline __wsum sctp_csum_combine(__wsum csum, __wsum csum2, > int offset, int len) > { > - return __crc32c_le_combine(csum, csum2, len); > + return (__force __wsum)__crc32c_le_combine((__force __u32)csum, > + (__force __u32)csum2, len); > } > > static inline __le32 sctp_compute_cksum(const struct sk_buff *skb, > unsigned int offset) > { > struct sctphdr *sh = sctp_hdr(skb); > - __le32 ret, old = sh->checksum; > const struct skb_checksum_ops ops = { > .update = sctp_csum_update, > .combine = sctp_csum_combine, > }; > + __le32 old = sh->checksum; > + __wsum new; > > sh->checksum = 0; > - ret = cpu_to_le32(~__skb_checksum(skb, offset, skb->len - offset, > - ~(__u32)0, &ops)); > + new = ~__skb_checksum(skb, offset, skb->len - offset, ~(__wsum)0, &ops); > sh->checksum = old; > > - return ret; > + return cpu_to_le32((__force __u32)new); > } > > #endif /* __sctp_checksum_h__ */ > -- > 2.1.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-sctp" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html