On 19/02/2026 3:43 pm, Jan Beulich wrote: > It's not clear why they were put in place - a__ is of the very type > already. > > No change in generated code. > > Signed-off-by: Jan Beulich <[email protected]>
I recall this monstrosity requiring many edits to get right. I expect it's stale from an older form. Acked-by: Andrew Cooper <[email protected]> > > --- a/xen/arch/x86/include/asm/bitops.h > +++ b/xen/arch/x86/include/asm/bitops.h > @@ -343,7 +343,7 @@ static always_inline unsigned int __scan > if ( o__ >= s__ ) \ > r__ = s__; \ > else if ( __builtin_constant_p(size) && s__ <= BITS_PER_LONG ) \ > - r__ = o__ + __scanbit(*(const unsigned long *)(a__) >> o__, s__); \ > + r__ = o__ + __scanbit(*a__ >> o__, s__); \ > else if ( __builtin_constant_p(off) && !o__ ) \ > r__ = __find_first_bit(a__, s__); \ > else \ > @@ -375,7 +375,7 @@ static always_inline unsigned int __scan > if ( o__ >= s__ ) \ > r__ = s__; \ > else if ( __builtin_constant_p(size) && s__ <= BITS_PER_LONG ) \ > - r__ = o__ + __scanbit(~*(const unsigned long *)(a__) >> o__, s__); \ > + r__ = o__ + __scanbit(~*a__ >> o__, s__); \ > else if ( __builtin_constant_p(off) && !o__ ) \ > r__ = __find_first_zero_bit(a__, s__); \ > else \
