Re: [PATCH] lfsr: a simple binary Galois linear feedback shift register

From: Peter Zijlstra
Date: Wed Apr 01 2015 - 03:53:29 EST


On Tue, Mar 31, 2015 at 01:28:09PM -0400, Waiman Long wrote:
> +static __always_inline u32 lfsr_taps(int bits)

> +static inline u32 lfsr(u32 val, int bits)
> +{
> + u32 bit = val & 1;
> +
> + /*
> + * LFSR doesn't work with a start state of 0, so force it to a
> + * non-zero value (bits) as the next state.
> + */
> + if (val == 0)
> + return bits;

Arguably this should be a debug/warn instead of a silent modification.

> + val >>= 1;
> + if (bit)
> + val ^= lfsr_taps(bits);
> + return val;
> +}

I was also thinking that if we modify the hash to be dynamically signed
we cannot use the compile time tap selection and need to change the
interface slightly.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/