random: deobfuscate irq u32/u64 contributions
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 10 Feb 2022 16:01:27 +0000 (17:01 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 21 Feb 2022 20:14:00 +0000 (21:14 +0100)
commitb2f408fe403800c91a49f6589d95b6759ce1b30b
tree4e26f85070836223d61537c74d7266638954c89b
parenta07fdae346c35c6ba286af1c88e0effcfa330bf9
random: deobfuscate irq u32/u64 contributions

In the irq handler, we fill out 16 bytes differently on 32-bit and
64-bit platforms, and for 32-bit vs 64-bit cycle counters, which doesn't
always correspond with the bitness of the platform. Whether or not you
like this strangeness, it is a matter of fact.  But it might not be a
fact you well realized until now, because the code that loaded the irq
info into 4 32-bit words was quite confusing.  Instead, this commit
makes everything explicit by having separate (compile-time) branches for
32-bit and 64-bit types.

Cc: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
drivers/char/random.c