On Fri, 29 Jul 2005, Linus Torvalds wrote:

> Thanks. Just out of interest, does this patch fix it instead?

Indeed it does, thanks Linus!

-cp

> ----
> diff --git a/include/asm-i386/bitops.h b/include/asm-i386/bitops.h
> --- a/include/asm-i386/bitops.h
> +++ b/include/asm-i386/bitops.h
> @@ -335,14 +335,13 @@ static inline unsigned long __ffs(unsign
>  static inline int find_first_bit(const unsigned long *addr, unsigned size)
>  {
>       int x = 0;
> -     do {
> -             if (*addr)
> -                     return __ffs(*addr) + x;
> -             addr++;
> -             if (x >= size)
> -                     break;
> +
> +     while (x < size) {
> +             unsigned long val = *addr++;
> +             if (val)
> +                     return __ffs(val) + x;
>               x += (sizeof(*addr)<<3);
> -     } while (1);
> +     }
>       return x;
>  }
>  
> 

-- 
"Democracy can learn some things from Communism; for example,
   when a Communist politician is through, he is through."
                        -- Unknown
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to