include/linux/bitops.h:273:19: sparse: sparse: cast truncates bits from constant value (fffffffffff000 becomes fffff000)
From: kernel test robot
Date: Thu Jun 11 2026 - 21:11:22 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 9716c086c8e8b141d35aa61f2e96a2e83de212a7
commit: e71e00127110dedc6a9e746178282b4dac97ed96 iommupt: Add the RISC-V page table format
date: 3 months ago
config: i386-randconfig-r132-20260612 (https://download.01.org/0day-ci/archive/20260612/202606120851.0Ve8qu0r-lkp@xxxxxxxxx/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260612/202606120851.0Ve8qu0r-lkp@xxxxxxxxx/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: e71e00127110 ("iommupt: Add the RISC-V page table format")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606120851.0Ve8qu0r-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
drivers/iommu/generic_pt/fmt/iommu_riscv64.c: note: in included file (through drivers/iommu/generic_pt/fmt/../pt_log2.h, drivers/iommu/generic_pt/fmt/../pt_defs.h, drivers/iommu/generic_pt/fmt/iommu_template.h):
>> include/linux/bitops.h:273:19: sparse: sparse: cast truncates bits from constant value (fffffffffff000 becomes fffff000)
include/linux/bitops.h:278:16: sparse: sparse: cast truncates bits from constant value (fffffffffff000 becomes fffff000)
>> include/linux/bitops.h:273:19: sparse: sparse: cast truncates bits from constant value (fffffffffff000 becomes fffff000)
include/linux/bitops.h:278:16: sparse: sparse: cast truncates bits from constant value (fffffffffff000 becomes fffff000)
vim +273 include/linux/bitops.h
c320592f3f2a1e Wolfram Sang 2025-01-07 261
952043ac12a117 Steven Whitehouse 2009-04-23 262 /**
952043ac12a117 Steven Whitehouse 2009-04-23 263 * __ffs64 - find first set bit in a 64 bit word
952043ac12a117 Steven Whitehouse 2009-04-23 264 * @word: The 64 bit word
952043ac12a117 Steven Whitehouse 2009-04-23 265 *
4945cca232ce8b Geert Uytterhoeven 2021-02-25 266 * On 64 bit arches this is a synonym for __ffs
952043ac12a117 Steven Whitehouse 2009-04-23 267 * The result is not defined if no bits are set, so check that @word
952043ac12a117 Steven Whitehouse 2009-04-23 268 * is non-zero before calling this.
952043ac12a117 Steven Whitehouse 2009-04-23 269 */
6606c8c7e81886 Kees Cook 2025-08-04 270 static inline __attribute_const__ unsigned int __ffs64(u64 word)
952043ac12a117 Steven Whitehouse 2009-04-23 271 {
952043ac12a117 Steven Whitehouse 2009-04-23 272 #if BITS_PER_LONG == 32
952043ac12a117 Steven Whitehouse 2009-04-23 @273 if (((u32)word) == 0UL)
952043ac12a117 Steven Whitehouse 2009-04-23 274 return __ffs((u32)(word >> 32)) + 32;
952043ac12a117 Steven Whitehouse 2009-04-23 275 #elif BITS_PER_LONG != 64
952043ac12a117 Steven Whitehouse 2009-04-23 276 #error BITS_PER_LONG not 32 or 64
952043ac12a117 Steven Whitehouse 2009-04-23 277 #endif
952043ac12a117 Steven Whitehouse 2009-04-23 278 return __ffs((unsigned long)word);
952043ac12a117 Steven Whitehouse 2009-04-23 279 }
952043ac12a117 Steven Whitehouse 2009-04-23 280
:::::: The code at line 273 was first introduced by commit
:::::: 952043ac12a117d8e94bddd9088338d7ad20ca7d bitops: Add __ffs64 bitop
:::::: TO: Steven Whitehouse <swhiteho@xxxxxxxxxx>
:::::: CC: Steven Whitehouse <swhiteho@xxxxxxxxxx>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki