On Mon, Aug 04, 2025 at 09:44:10AM -0700, Kees Cook wrote: > While tracking down a problem where constant expressions used by > BUILD_BUG_ON() suddenly stopped working[1], we found that an added static > initializer was convincing the compiler that it couldn't track the state > of the prior statically initialized value. Tracing this down found that > ffs() was used in the initializer macro, but since it wasn't marked with > __attribute__const__, the compiler had to assume the function might > change variable states as a side-effect (which is not true for ffs(), > which provides deterministic math results). > > Add missing __attribute_const__ annotations to S390's implementations of > ffs(), __ffs(), fls(), and __fls() functions. These are pure mathematical > functions that always return the same result for the same input with no > side effects, making them eligible for compiler optimization. > > Build tested ARCH=s390 defconfig with GCC s390x-linux-gnu 14.2.0. > > Link: https://github.com/KSPP/linux/issues/364 [1] > Signed-off-by: Kees Cook <k...@kernel.org> > --- > arch/s390/include/asm/bitops.h | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-)
Acked-by: Heiko Carstens <h...@linux.ibm.com>