[NET]: ipvs checksum annotations.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Al Viro
2006-11-16 02:41:18 -08:00
committed by David S. Miller
parent 5c78f275e6
commit f9214b2627
3 changed files with 16 additions and 10 deletions

View File

@ -990,12 +990,18 @@ extern void ip_vs_nat_icmp(struct sk_buff *skb, struct ip_vs_protocol *pp,
extern __sum16 ip_vs_checksum_complete(struct sk_buff *skb, int offset);
static inline u16 ip_vs_check_diff(u32 old, u32 new, u16 oldsum)
static inline __wsum ip_vs_check_diff4(__be32 old, __be32 new, __wsum oldsum)
{
u32 diff[2] = { old, new };
__be32 diff[2] = { ~old, new };
return csum_fold(csum_partial((char *) diff, sizeof(diff),
oldsum ^ 0xFFFF));
return csum_partial((char *) diff, sizeof(diff), oldsum);
}
static inline __wsum ip_vs_check_diff2(__be16 old, __be16 new, __wsum oldsum)
{
__be16 diff[2] = { ~old, new };
return csum_partial((char *) diff, sizeof(diff), oldsum);
}
#endif /* __KERNEL__ */