It's a bit after 2.6.1 now...

Removes unnecessary if, uses 16 bit rotate left.
Performance improves ~30%

Signed-off-by: Joe Perches <[EMAIL PROTECTED]>

diff --git a/net/appletalk/ddp.c b/net/appletalk/ddp.c
index 7c0b515..1c50f4c 100644
--- a/net/appletalk/ddp.c
+++ b/net/appletalk/ddp.c
@@ -925,15 +925,9 @@ static int atrtr_ioctl(unsigned int cmd, void __user *arg)
 static unsigned long atalk_sum_partial(const unsigned char *data,
                                       int len, unsigned long sum)
 {
-       /* This ought to be unwrapped neatly. I'll trust gcc for now */
        while (len--) {
-               sum += *data;
-               sum <<= 1;
-               if (sum & 0x10000) {
-                       sum++;
-                       sum &= 0xffff;
-               }
-               data++;
+               sum += *data++;
+               sum = ((sum & 0x8000)>>15) | ((sum & 0x7fff)<<1);
        }
        return sum;
 }


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to