From: Herbert Xu <herbert@gondor.apana.org.au> Date: Wed, 27 May 2009 15:31:06 +1000 Subject: [net] backport csum_replace4/csum_replace2 Message-id: E1M9BjG-0002A2-HI@gondolin.me.apana.org.au O-Subject: [PATCH 2/17] net: Backport csum_replace4/csum_replace2 Bugzilla: 499347 RH-Acked-by: David Miller <davem@redhat.com> RH-Acked-by: Neil Horman <nhorman@redhat.com> RH-Acked-by: Thomas Graf <tgraf@redhat.com> RHEL5 bugzilla #499347 net: Backport csum_replace4/csum_replace2 This patch backports the checksum helpers csum_replace4 and csum_replace2. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> diff --git a/include/net/checksum.h b/include/net/checksum.h index e0b675c..c4a23ef 100644 --- a/include/net/checksum.h +++ b/include/net/checksum.h @@ -89,4 +89,17 @@ static inline u32 csum_unfold(u16 n) return n; } +static inline void csum_replace4(u16 *sum, u32 from, u32 to) +{ + u32 diff[] = { ~from, to }; + + *sum = csum_fold(csum_partial((unsigned char *)diff, sizeof(diff), + ~csum_unfold(*sum))); +} + +static inline void csum_replace2(u16 *sum, u16 from, u16 to) +{ + csum_replace4(sum, from, to); +} + #endif