From: Heiko Carstens <hca@linux.ibm.com>
To: Nathan Chancellor <nathan@kernel.org>,
Miguel Ojeda <ojeda@kernel.org>, Kees Cook <kees@kernel.org>,
Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Juergen Christ <jchrist@linux.ibm.com>
Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
Sven Schnelle <svens@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>
Subject: [PATCH v2 1/4] s390/bitops: Limit return value range of __flogr()
Date: Tue, 16 Sep 2025 15:48:00 +0200 [thread overview]
Message-ID: <20250916134803.874580-2-hca@linux.ibm.com> (raw)
In-Reply-To: <20250916134803.874580-1-hca@linux.ibm.com>
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>
---
arch/s390/include/asm/bitops.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/s390/include/asm/bitops.h b/arch/s390/include/asm/bitops.h
index 56376b6ff809..a1dd72b16f54 100644
--- a/arch/s390/include/asm/bitops.h
+++ b/arch/s390/include/asm/bitops.h
@@ -169,7 +169,7 @@ static __always_inline unsigned char __flogr(unsigned long word)
asm volatile(
" flogr %[rp],%[rp]\n"
: [rp] "+d" (rp.pair) : : "cc");
- return rp.even;
+ return rp.even & 127;
}
}
--
2.48.1
next prev parent reply other threads:[~2025-09-16 13:48 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-16 13:47 [PATCH v2 0/4] s390: Fix and optimize __flogr() inline assembly Heiko Carstens
2025-09-16 13:48 ` Heiko Carstens [this message]
2025-09-16 13:48 ` [PATCH v2 2/4] compiler_types: Add __assume macro Heiko Carstens
2025-09-17 2:30 ` Nathan Chancellor
2025-09-16 13:48 ` [PATCH v2 3/4] s390/bitops: Use __assume() for __flogr() inline assembly return value Heiko Carstens
2025-09-16 13:48 ` [PATCH v2 4/4] s390/bitops: Cleanup __flogr() Heiko Carstens
2025-09-18 14:19 ` [PATCH v2 0/4] s390: Fix and optimize __flogr() inline assembly Alexander Gordeev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250916134803.874580-2-hca@linux.ibm.com \
--to=hca@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=borntraeger@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=jchrist@linux.ibm.com \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=ojeda@kernel.org \
--cc=svens@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox