- 07 Jul, 2011 1 commit
-
-
Ian Abbott authored
Reduce the number of variables modified by the loop in do_csum() by 1, which seems like a good idea. On Nios II (a RISC CPU with 3-operand instruction set) it reduces the loop from 7 to 6 instructions, including the conditional branch. Signed-off-by:
Ian Abbott <abbotti@mev.co.uk> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 03 Nov, 2009 3 commits
-
-
Arnd Bergmann authored
When do_csum gets unaligned data, we really need to treat the first byte as an even byte, not an odd byte, because we swap the two halves later. Found by Mike's checksum-selftest module. Reported-by:
Mike Frysinger <vapier.adi@gmail.com> Signed-off-by:
Arnd Bergmann <arnd@arndb.de>
-
Arnd Bergmann authored
Mike Frysinger suggested that do_csum should be optional so that an architecture can use the generic checksum code but still provide an optimized fast-path for the most critical function. This can mean an implementation using inline assembly, or in case of Alpha one using 64-bit arithmetic in C. Cc: Mike Frysinger <vapier@gentoo.org> Signed-off-by:
Arnd Bergmann <arnd@arndb.de>
-
Arnd Bergmann authored
The use of 'unsigned long' variables in the 32-bit part of do_csum() is confusing at best, and potentially broken for long input on 64-bit machines. This changes the code to use 'unsigned int' instead, which makes the code behave in the same (correct) way on both 32 and 64 bit machines. Reported-by:
Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by:
Arnd Bergmann <arnd@arndb.de>
-
- 19 Jun, 2009 1 commit
-
-
Arnd Bergmann authored
The new generic checksum code has a small dependency on endianess and worked only on big-endian systems. I could not find a nice efficient way to express this, so I added an #ifdef. Using 'result += le16_to_cpu(*buff);' would have worked as well, but would be slightly less efficient on big-endian systems and IMHO would not be clearer. Also fix a bug that prevents this from working on 64-bit machines. If you have a 64-bit CPU and want to use the generic checksum code, you should probably do some more optimizations anyway, but at least the code should not break. Reported-by:
Mike Frysinger <vapier@gentoo.org> Signed-off-by:
Arnd Bergmann <arnd@arndb.de>
-
- 11 Jun, 2009 1 commit
-
-
Arnd Bergmann authored
Add a generic (unoptimized) implementation of checksum.c in pure C for use by all architectures that cannot be bother with implementing their own version. Based on microblaze code by Michal Simek <monstr@monstr.eu> Cc: Michal Simek <monstr@monstr.eu> Signed-off-by:
Remis Lima Baima <remis.developer@googlemail.com> Signed-off-by:
Arnd Bergmann <arnd@arndb.de>
-
- 21 May, 2009 1 commit
-
-
Arnd Bergmann authored
This changes the function prototypes in the checksum code to have the usual prototypes, typically by turning int arguments into __wsum. Also change csum_partial_copy_from_user() to operate on the right address space and export ip_fast_csum, which is used in modular networking code. The new version is now sparse-clean including endianess checks. Signed-off-by:
Arnd Bergmann <arnd@arndb.de> Signed-off-by:
Michal Simek <monstr@monstr.eu>
-
- 27 Mar, 2009 1 commit
-
-
Michal Simek authored
Reviewed-by:
Ingo Molnar <mingo@elte.hu> Acked-by:
Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by:
John Linn <john.linn@xilinx.com> Acked-by:
John Williams <john.williams@petalogix.com> Signed-off-by:
Michal Simek <monstr@monstr.eu>
-
- 03 Dec, 2006 1 commit
-
-
Al Viro authored
* sanitize prototypes, annotated * collapsed csum_partial_copy() Signed-off-by:
Al Viro <viro@zeniv.linux.org.uk> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 16 Apr, 2005 1 commit
-
-
Linus Torvalds authored
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
-