On 26.02.2024 18:38, Oleksii Kurochko wrote: > --- /dev/null > +++ b/xen/include/asm-generic/bitops/fls.h > @@ -0,0 +1,18 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _ASM_GENERIC_BITOPS_FLS_H_ > +#define _ASM_GENERIC_BITOPS_FLS_H_ > + > +/** > + * fls - find last (most-significant) bit set > + * @x: the word to search > + * > + * This is defined the same way as ffs. > + * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32. > + */ > + > +static inline int fls(unsigned int x) > +{ > + return generic_fls(x); > +}
This being an inline function, it requires generic_fls() to be declared. Yet there's no other header included here. I think these headers would better be self-contained. Or else (e.g. because of this leading to an #include cycle) something needs saying somewhere. The other thing here that worries me is the use of plain int as return type. Yes, generic_fls() is declared like that, too. But no, the return value there or here cannot be negative. Jan