[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |