lib/checksum.c: make do_csum optional
authorArnd Bergmann <arnd@arndb.de>
Tue, 23 Jun 2009 19:37:26 +0000 (21:37 +0200)
committerArnd Bergmann <arnd@arndb.de>
Tue, 3 Nov 2009 15:06:52 +0000 (16:06 +0100)
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>
lib/checksum.c

index 886b48d..b08c2d0 100644 (file)
@@ -37,6 +37,7 @@
 
 #include <asm/byteorder.h>
 
+#ifndef do_csum
 static inline unsigned short from32to16(unsigned int x)
 {
        /* add up 16-bit and 16-bit for 16+c bit */
@@ -102,6 +103,7 @@ static unsigned int do_csum(const unsigned char *buff, int len)
 out:
        return result;
 }
+#endif
 
 /*
  *     This is a version of ip_compute_csum() optimized for IP headers,