On 8 July 2012 13:12, <blauwir...@gmail.com> wrote: > -static inline uint64_t deposit64(uint64_t value, int start, int length, > - uint64_t fieldval) > +static inline uint64_t deposit64(uint64_t value, unsigned int start, > + unsigned int length, uint64_t fieldval) > { > uint64_t mask; > - assert(start >= 0 && length > 0 && length <= 64 - start); > + assert(length > 0 && length <= 64 - start);
This breaks the assertion (consider the case of start == UINT_MAX and length == 64). In general, this patch is fixing something that isn't broken and pointlessly diverging from the well-tested kernel versions of these functions. It's also trying to do several things at once (eg "drop volatile" is probably less controversial.) -- PMM