diff options
author | George Spelvin <linux@sciencehorizons.net> | 2016-05-27 05:00:23 +0200 |
---|---|---|
committer | George Spelvin <linux@sciencehorizons.net> | 2016-05-28 21:42:51 +0200 |
commit | ef703f49a6c5b909a85149bb6625c4ed0d697186 (patch) | |
tree | 4207abfae54812ba02e76ad6450ce4d0facd6b41 /drivers/media | |
parent | Change hash_64() return value to 32 bits (diff) | |
download | linux-ef703f49a6c5b909a85149bb6625c4ed0d697186.tar.xz linux-ef703f49a6c5b909a85149bb6625c4ed0d697186.zip |
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>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/usb/dvb-usb-v2/af9015.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/media/usb/dvb-usb-v2/af9015.c b/drivers/media/usb/dvb-usb-v2/af9015.c index 95a7388e89d4..09e0f58f6bb7 100644 --- a/drivers/media/usb/dvb-usb-v2/af9015.c +++ b/drivers/media/usb/dvb-usb-v2/af9015.c @@ -398,6 +398,8 @@ error: } #define AF9015_EEPROM_SIZE 256 +/* 2^31 + 2^29 - 2^25 + 2^22 - 2^19 - 2^16 + 1 */ +#define GOLDEN_RATIO_PRIME_32 0x9e370001UL /* hash (and dump) eeprom */ static int af9015_eeprom_hash(struct dvb_usb_device *d) |