[PATCH 0/10] use safer test on the result of find_first_zero_bit
Julia Lawall
julia.lawall at lip6.fr
Wed Jun 4 06:12:23 PDT 2014
On Wed, 4 Jun 2014, Geert Uytterhoeven wrote:
> Hi Julia,
>
> On Wed, Jun 4, 2014 at 1:00 PM, Julia Lawall <julia.lawall at lip6.fr> wrote:
> > 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.
>
> "size" may have been changed between function entry and this line.
> So you have to store it in a temporary.
Sorry, after reflection it seems that indeed size + result is always the
original size, so it is actually all of the code that uses >= that is
doing something unnecessary. == for the failure test is fine.
julia
More information about the ath10k
mailing list