Skip to content

Commit

Permalink
asm-generic headers: Allow yet more arch overrides in checksum.h
Browse files Browse the repository at this point in the history
arches can have more efficient implementation of these routines

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
  • Loading branch information
vineetgarc committed Feb 11, 2013
1 parent 0a5eae4 commit 64e6907
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
4 changes: 4 additions & 0 deletions include/asm-generic/checksum.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,15 @@ extern __wsum csum_partial_copy_from_user(const void __user *src, void *dst,
csum_partial_copy((src), (dst), (len), (sum))
#endif

#ifndef ip_fast_csum
/*
* This is a version of ip_compute_csum() optimized for IP headers,
* which always checksum on 4 octet boundaries.
*/
extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
#endif

#ifndef csum_fold
/*
* Fold a partial checksum
*/
Expand All @@ -54,6 +57,7 @@ static inline __sum16 csum_fold(__wsum csum)
sum = (sum & 0xffff) + (sum >> 16);
return (__force __sum16)~sum;
}
#endif

#ifndef csum_tcpudp_nofold
/*
Expand Down
2 changes: 2 additions & 0 deletions lib/checksum.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ static unsigned int do_csum(const unsigned char *buff, int len)
}
#endif

#ifndef ip_fast_csum
/*
* This is a version of ip_compute_csum() optimized for IP headers,
* which always checksum on 4 octet boundaries.
Expand All @@ -111,6 +112,7 @@ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
return (__force __sum16)~do_csum(iph, ihl*4);
}
EXPORT_SYMBOL(ip_fast_csum);
#endif

/*
* computes the checksum of a memory block at buff, length len,
Expand Down

0 comments on commit 64e6907

Please sign in to comment.