On Tue, Aug 01, 2023 at 06:07:08PM -0700, Linus Torvalds wrote: > I think the patch is fine, but I guess I'd like to know that people > who are affected actually don't see any code generation changes (or > possibly see improvements from not turning it into a bool until later) We see this warning with ARCH=arm64 defconfig + CONFIG_CPU_BIG_ENDIAN=y. With both clang 18.0.0 (tip of tree) and GCC 13.1.0, I don't see any actual code generation changes in fs/namei.o with this configuration. I'd be pretty surprised if any of the other uses of has_zero() show any changes, I at least checked lib/string.o with that configuration and s390 and did not see anything. As far as I can tell, arm and arm64 with CONFIG_CPU_BIG_ENDIAN=y are the only configurations that can hit the particular bit of code with the generic big endian has_zero() implementation because the version of hash_name() that uses has_zero() in this manner is only used when CONFIG_DCACHE_WORD_ACCESS is set, which only arm, arm64, powerpc (little endian), and x86 select. arch/arm/Kconfig:49: select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS arch/arm64/Kconfig:121: select DCACHE_WORD_ACCESS arch/powerpc/Kconfig:183: select DCACHE_WORD_ACCESS if PPC64 && CPU_LITTLE_ENDIAN arch/x86/Kconfig:140: select DCACHE_WORD_ACCESS if !KMSAN arch/x86/um/Kconfig:12: select DCACHE_WORD_ACCESS So seems like a pretty low risk patch to me but I could be missing something. Cheers, Nathan