Eliminate bad hash multipliers from hash_32() and hash_64()
authorGeorge Spelvin <linux@sciencehorizons.net>
Fri, 27 May 2016 03:00:23 +0000 (23:00 -0400)
committerGeorge Spelvin <linux@sciencehorizons.net>
Sat, 28 May 2016 19:42:51 +0000 (15:42 -0400)
commitef703f49a6c5b909a85149bb6625c4ed0d697186
tree4207abfae54812ba02e76ad6450ce4d0facd6b41
parent92d567740f2ab5937b2c23bee94ea4b284bb1f98
Eliminate bad hash multipliers from hash_32() and  hash_64()

The "simplified" prime multipliers made very bad hash functions, so get rid
of them.  This completes the work of 689de1d6ca.

To avoid the inefficiency which was the motivation for the "simplified"
multipliers, hash_64() on 32-bit systems is changed to use a different
algorithm.  It makes two calls to hash_32() instead.

drivers/media/usb/dvb-usb-v2/af9015.c uses the old GOLDEN_RATIO_PRIME_32
for some horrible reason, so it inherits a copy of the old definition.

Signed-off-by: George Spelvin <linux@sciencehorizons.net>
Cc: Antti Palosaari <crope@iki.fi>
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/usb/dvb-usb-v2/af9015.c
include/linux/hash.h