summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-03-13 15:01:00 -0400
committerDavid S. Miller <davem@davemloft.net>2016-03-13 15:01:00 -0400
commitf22f5f6060584ac66a7a43f644788fda8fc7b1f8 (patch)
tree057defd0704c2fcb6500c062037f2657710b73e2 /include
parent3a8befcd7872f572882ad7e14994a17f9b55dd4e (diff)
parent338039635d01524090e7bd706a3e555e20d5b337 (diff)
Merge branch 'net-minor-cleanups-and-optimizations'
Alexander Duyck says: ==================== A couple of minor clean-ups and optimizations This patch series is basically just a v2 of a couple patches I recently submitted. The two patches aren't technically related but there are just items I found while cleaning up and prepping some further work to enable Tx checksums for tunnels. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/net/checksum.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/include/net/checksum.h b/include/net/checksum.h
index abffc64e7300..5c30891e84e5 100644
--- a/include/net/checksum.h
+++ b/include/net/checksum.h
@@ -88,8 +88,11 @@ static inline __wsum
csum_block_add(__wsum csum, __wsum csum2, int offset)
{
u32 sum = (__force u32)csum2;
- if (offset&1)
- sum = ((sum&0xFF00FF)<<8)+((sum>>8)&0xFF00FF);
+
+ /* rotate sum to align it with a 16b boundary */
+ if (offset & 1)
+ sum = ror32(sum, 8);
+
return csum_add(csum, (__force __wsum)sum);
}
@@ -102,10 +105,7 @@ csum_block_add_ext(__wsum csum, __wsum csum2, int offset, int len)
static inline __wsum
csum_block_sub(__wsum csum, __wsum csum2, int offset)
{
- u32 sum = (__force u32)csum2;
- if (offset&1)
- sum = ((sum&0xFF00FF)<<8)+((sum>>8)&0xFF00FF);
- return csum_sub(csum, (__force __wsum)sum);
+ return csum_block_add(csum, ~csum2, offset);
}
static inline __wsum csum_unfold(__sum16 n)