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