bitops: Change function return types from long to int
authorThorsten Blum <thorsten.blum@toblux.com>
Sat, 20 Apr 2024 22:38:37 +0000 (00:38 +0200)
committerArnd Bergmann <arnd@arndb.de>
Fri, 3 May 2024 15:04:50 +0000 (17:04 +0200)
commit9c313ccdfc079f71f16c9b3d3a6c6d60996b9367
treef02cf54d4387467cf9f7b844afb2d62f7754c3dc
parente67572cd2204894179d89bd7b984072f19313b03
bitops: Change function return types from long to int

Change the return types of bitops functions (ffs, fls, and fns) from
long to int. The expected return values are in the range [0, 64], for
which int is sufficient.

Additionally, int aligns well with the return types of the corresponding
__builtin_* functions, potentially reducing overall type conversions.

Many of the existing bitops functions already return an int and don't
need to be changed. The bitops functions in arch/ should be considered
separately.

Adjust some return variables to match the function return types.

With GCC 13 and defconfig, these changes reduced the size of a test
kernel image by 5,432 bytes on arm64 and by 248 bytes on riscv; there
were no changes in size on x86_64, powerpc, or m68k.

Signed-off-by: Thorsten Blum <thorsten.blum@toblux.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
include/asm-generic/bitops/__ffs.h
include/asm-generic/bitops/__fls.h
include/asm-generic/bitops/builtin-__ffs.h
include/asm-generic/bitops/builtin-__fls.h
include/linux/bitops.h
tools/include/asm-generic/bitops/__ffs.h
tools/include/asm-generic/bitops/__fls.h
tools/include/linux/bitops.h