lkml.org 
[lkml]   [2015]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] lfsr: a simple binary Galois linear feedback shift register
On 04/01/2015 03:53 AM, Peter Zijlstra wrote:
> 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.

Since it is used in conjunction with hashing, it is possible that
hashing can produce a value of 0. Do we really want to have a warning
for that? Alternatively, we can pass in some flag to decide if a warning
should be issued.

>> + 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.

So you mean having another argument for the caller to pass in the tap
value instead of using the default. Right?

-Longman


\
 
 \ /
  Last update: 2015-04-01 16:41    [W:0.131 / U:8.368 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site