lkml.org 
[lkml]   [2014]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0/10] use safer test on the result of find_first_zero_bit


On Wed, 4 Jun 2014, Geert Uytterhoeven wrote:

> Hi Julia,
>
> On Wed, Jun 4, 2014 at 11:52 AM, Julia Lawall <julia.lawall@lip6.fr> wrote:
> >> Maybe the documented return code should be changed to allow for the
> >> existing behaviour.
> >
> > Sorry, I'm not sure to understand what you suggest here.
>
> include/asm-generic/bitops/find.h:
>
> | /**
> | * find_first_zero_bit - find the first cleared bit in a memory region
> | * @addr: The address to start the search at
> | * @size: The maximum number of bits to search
> | *
> | * Returns the bit number of the first cleared bit.
> | * If no bits are zero, returns @size.
>
> "If no bits are zero, returns @size or a number larger than @size."

OK, thanks. I was only looking at the C code.

But the C code contains a loop that is followed by:

if (!size)
return result;
tmp = *p;

found_first:
tmp |= ~0UL << size;
if (tmp == ~0UL) /* Are any bits zero? */
return result + size; /* Nope. */

In the first return, it would seem that result == size. Could the second
one be changed to just return size? It should not hurt performance.

julia

>
> | */
> | extern unsigned long find_first_zero_bit(const unsigned long *addr,
> | unsigned long size);
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
>


\
 
 \ /
  Last update: 2014-06-04 14:01    [W:0.094 / U:0.440 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site