On Tue, Nov 06, 2018 at 06:14:44PM +0300, Alexey Dobriyan wrote: > On Mon, Nov 05, 2018 at 03:33:01PM -0800, akpm@xxxxxxxxxxxxxxxxxxxx wrote: > > > -static inline int fls(int x) > > +static inline int fls(unsigned int x) > > { > > - return fls64((unsigned int) x); > > + return fls64(x); > > } > > Should it return "unsigned"? Logically it should. > I remember doing this and there was some code size increase :-( Yes, it returns a number in the range [0-32], so it can absolutely be unsigned. I'm kind of surprised it made any difference. When you say "doing this", what did you try? unsigned fls(unsigned), int fls(unsigned) or unsigned fls(int) ?