]> git.baikalelectronics.ru Git - kernel.git/commit
random: Fix fast_mix() function
authorGeorge Spelvin <linux@horizon.com>
Sat, 7 Feb 2015 05:32:06 +0000 (00:32 -0500)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 9 Feb 2015 20:28:42 +0000 (12:28 -0800)
commit455c1966bfc072bbe1a0ad688ebe58f249d4acdf
tree97c4a18e6a60024256fc92fffed0cae95d0b4ef7
parent0e38082809912ff57cfd2890d37a76ff2ebecf2f
random: Fix fast_mix() function

There was a bad typo in commit 7c70dcd2fc38 ("random: use an improved
fast_mix() function") and I didn't notice because it "looked right", so
I saw what I expected to see when I reviewed it.

Only months later did I look and notice it's not the Threefish-inspired
mix function that I had designed and optimized.

Mea Culpa.  Each input bit still has a chance to affect each output bit,
and the fast pool is spilled *long* before it fills, so it's not a total
disaster, but it's definitely not the intended great improvement.

I'm still working on finding better rotation constants.  These are good
enough, but since it's unrolled twice, it's possible to get better
mixing for free by using eight different constants rather than repeating
the same four.

Signed-off-by: George Spelvin <linux@horizon.com>
Cc: Theodore Ts'o <tytso@mit.edu>
Cc: stable@vger.kernel.org # v3.16+
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/char/random.c