mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 00:24:12 +08:00
sctp: force the params with right types for sctp csum apis
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: e6d8b64b34
("net: sctp: fix and consolidate SCTP checksumming code")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
08f46070dd
commit
af2697a027
@ -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__ */
|
||||
|
Loading…
Reference in New Issue
Block a user