From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758282AbZBLJRH (ORCPT ); Thu, 12 Feb 2009 04:17:07 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756176AbZBLJQp (ORCPT ); Thu, 12 Feb 2009 04:16:45 -0500 Received: from stinky.trash.net ([213.144.137.162]:44820 "EHLO stinky.trash.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756175AbZBLJQn (ORCPT ); Thu, 12 Feb 2009 04:16:43 -0500 Message-ID: <4993E8F7.6070007@trash.net> Date: Thu, 12 Feb 2009 10:16:39 +0100 From: Patrick McHardy User-Agent: Mozilla-Thunderbird 2.0.0.19 (X11/20090103) MIME-Version: 1.0 To: Jozsef Kadlecsik CC: wli@movementarian.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, Rusty Russell Subject: Re: [PATCH] Update jhash.h with the new version of Jenkins' hash References: <20090212001223.GA5757@movementarian.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Jozsef Kadlecsik wrote: > -#define __jhash_mix(a, b, c) \ > +#define __rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) > + > +/* __jhash_mix - mix 3 32-bit values reversibly. */ > +#define __jhash_mix(a,b,c) \ > +{ \ > + a -= c; a ^= __rot(c, 4); c += b; \ > + b -= a; b ^= __rot(a, 6); a += c; \ > + c -= b; c ^= __rot(b, 8); b += a; \ > + a -= c; a ^= __rot(c,16); c += b; \ > + b -= a; b ^= __rot(a,19); a += c; \ > + c -= b; c ^= __rot(b, 4); b += a; \ > +} include/linux/bitops.h includes multiple rot variants. rol32() looks approriate.