[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] only use legitimate shift counts in bitmap shifting



On Wed, 2014-04-23 at 07:50 +0100, Jan Beulich wrote:
> An alternative would be to remove these implicitly unused functions.

Why "implicitly"?

Looks like we got this file from Linux, which I suppose is a reason to
keep it intact even if we aren't using these particular functions. It
does look like the same fix applies to Linux though.

Can you be explicit about which thing is illegitimate? I have inferred
it is when rem == 0, which leads to "upper << BITS_PER_LONG"? If you
make that clear in the commit message then:
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

> 
> Coverity ID 1192174 (__bitmap_shift_right)
> Coverity ID 1192175 (__bitmap_shift_left)
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> --- a/xen/common/bitmap.c
> +++ b/xen/common/bitmap.c
> @@ -144,7 +144,9 @@ void __bitmap_shift_right(unsigned long 
>               lower = src[off + k];
>               if (left && off + k == lim - 1)
>                       lower &= mask;
> -             dst[k] = upper << (BITS_PER_LONG - rem) | lower >> rem;
> +             dst[k] = rem
> +                      ? (upper << (BITS_PER_LONG - rem)) | (lower >> rem)
> +                      : lower;
>               if (left && k == lim - 1)
>                       dst[k] &= mask;
>       }
> @@ -185,7 +187,9 @@ void __bitmap_shift_left(unsigned long *
>               upper = src[k];
>               if (left && k == lim - 1)
>                       upper &= (1UL << left) - 1;
> -             dst[k + off] = lower  >> (BITS_PER_LONG - rem) | upper << rem;
> +             dst[k + off] = rem ? (lower >> (BITS_PER_LONG - rem))
> +                                   | (upper << rem)
> +                                : upper;
>               if (left && k + off == lim - 1)
>                       dst[k + off] &= (1UL << left) - 1;
>       }
> 
> 
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.