]> www.infradead.org Git - users/jedix/linux-maple.git/commit
s390/bitops: Limit return value range of __flogr()
authorHeiko Carstens <hca@linux.ibm.com>
Tue, 16 Sep 2025 13:48:00 +0000 (15:48 +0200)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Thu, 18 Sep 2025 12:06:40 +0000 (14:06 +0200)
commita9f859b516ac98c06b0d24e691fceab32a9665d5
tree103f0781e41a2618ba9c61bfa082078e603ea4fc
parent5b27dfb1d7b59db9e72766c990a3ee80e39e4f69
s390/bitops: Limit return value range of __flogr()

With the recent ffs() and ffs64() optimization a logical AND operation was
removed, which allowed the compiler to tell the return value range of both
functions. This may lead to compile warnings as reported by the kernel test
robot:

   drivers/infiniband/hw/mlx5/mr.c: In function 'mlx5r_cache_create_ent_locked':
>> drivers/infiniband/hw/mlx5/mr.c:840:31: warning: 'sprintf' may write a terminating nul past the end of the destination [-Wformat-overflow=]
     840 |         sprintf(ent->name, "%d", order);
         |                               ^
   In function 'mlx5_mkey_cache_debugfs_add_ent',
       inlined from 'mlx5r_cache_create_ent_locked' at drivers/infiniband/hw/mlx5/mr.c:930:3:
   drivers/infiniband/hw/mlx5/mr.c:840:9: note: 'sprintf' output between 2 and 5 bytes into a destination of size 4
     840 |         sprintf(ent->name, "%d", order);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Add the AND operation again to address the warning.

From a correctness point of view the AND operation is not necessary,
however there is no other way to tell the compiler that the returned
value of the flogr inline assembly is in the range of 0..64.

This increases the kernel image size by 566 bytes (defconfig, gcc 15.2.0).

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202508211859.UoYsJbLN-lkp@intel.com/
Fixes: de88e74889a3 ("s390/bitops: Slightly optimize ffs() and fls64()")
Suggested-by: Juergen Christ <jchrist@linux.ibm.com>
Reviewed-by: Juergen Christ <jchrist@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/include/asm/bitops.h