Re: [PATCH 4/8] random: remove unused branch in hot code path

From: Theodore Ts'o
Date: Tue Jan 17 2017 - 23:35:57 EST


On Tue, Dec 27, 2016 at 11:40:23PM +0100, Stephan Müller wrote:
> The variable ip is defined to be a __u64 which is always 8 bytes on any
> architecture. Thus, the check for sizeof(ip) > 4 will always be true.
>
> As the check happens in a hot code path, remove the branch.

The fact that it's a hot code path means the compiler will optimize it
out, so the fact that it's on the hot code path is irrelevant. The
main issue is that on platforms with a 32-bit IP's, ip >> 32 will
always be zero. It might be that we can just do this via

#if BITS_PER_LONG == 32
...
#else
...
#endif

I'm not sure that works for all platforms, though. More research is
needed...

- Ted