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

Reply via email to