diff options
author | Linas Vepstas <linas@codeaurora.org> | 2011-10-31 19:56:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-01 10:34:21 -0400 |
commit | 4e29198e1cd7728c30c96a8483a6068c71b34e4e (patch) | |
tree | 780c0bb634c2161a89616eeb84d140d6ec641d3d /include/asm-generic | |
parent | 4f4567cf4ff586e318aa1bc586a69570d64b162a (diff) |
Add extra arch overrides to asm-generic/checksum.h
There are plausible reasons for architectures to provide their own
versions of csum_partial_copy_nocheck and csum_tcpudp_magic.
By protecting these, the architecture can still re-use the
asm-generic checksum.h, instead of copying it.
Signed-off-by: Linas Vepstas <linas@codeaurora.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Richard Kuo <rkuo@codeaurora.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/checksum.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/asm-generic/checksum.h b/include/asm-generic/checksum.h index 4647c762d970..c084767c88bc 100644 --- a/include/asm-generic/checksum.h +++ b/include/asm-generic/checksum.h | |||
@@ -33,8 +33,10 @@ extern __wsum csum_partial_copy(const void *src, void *dst, int len, __wsum sum) | |||
33 | extern __wsum csum_partial_copy_from_user(const void __user *src, void *dst, | 33 | extern __wsum csum_partial_copy_from_user(const void __user *src, void *dst, |
34 | int len, __wsum sum, int *csum_err); | 34 | int len, __wsum sum, int *csum_err); |
35 | 35 | ||
36 | #ifndef csum_partial_copy_nocheck | ||
36 | #define csum_partial_copy_nocheck(src, dst, len, sum) \ | 37 | #define csum_partial_copy_nocheck(src, dst, len, sum) \ |
37 | csum_partial_copy((src), (dst), (len), (sum)) | 38 | csum_partial_copy((src), (dst), (len), (sum)) |
39 | #endif | ||
38 | 40 | ||
39 | /* | 41 | /* |
40 | * This is a version of ip_compute_csum() optimized for IP headers, | 42 | * This is a version of ip_compute_csum() optimized for IP headers, |
@@ -63,12 +65,14 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, | |||
63 | unsigned short proto, __wsum sum); | 65 | unsigned short proto, __wsum sum); |
64 | #endif | 66 | #endif |
65 | 67 | ||
68 | #ifndef csum_tcpudp_magic | ||
66 | static inline __sum16 | 69 | static inline __sum16 |
67 | csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len, | 70 | csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len, |
68 | unsigned short proto, __wsum sum) | 71 | unsigned short proto, __wsum sum) |
69 | { | 72 | { |
70 | return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); | 73 | return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); |
71 | } | 74 | } |
75 | #endif | ||
72 | 76 | ||
73 | /* | 77 | /* |
74 | * this routine is used for miscellaneous IP-like checksums, mainly | 78 | * this routine is used for miscellaneous IP-like checksums, mainly |