|
@@ -122,7 +122,9 @@ static inline __wsum csum_partial_ext(const void *buff, int len, __wsum sum)
|
|
|
|
|
|
static inline void csum_replace4(__sum16 *sum, __be32 from, __be32 to)
|
|
|
{
|
|
|
- *sum = csum_fold(csum_add(csum_sub(~csum_unfold(*sum), from), to));
|
|
|
+ __wsum tmp = csum_sub(~csum_unfold(*sum), (__force __wsum)from);
|
|
|
+
|
|
|
+ *sum = csum_fold(csum_add(tmp, (__force __wsum)to));
|
|
|
}
|
|
|
|
|
|
/* Implements RFC 1624 (Incremental Internet Checksum)
|