[mark:arm64/percpu-fixup 15/17] arch/arm64/include/asm/percpu.h:341:1: error: value size does not match register size specified by the constraint and modifier

kernel test robot <[email protected]> Sat, 01 Aug 2026 18:46:27 +0800
Newsgroups dev.linux.lists.llvm,dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/percpu-fixup
head:   f118f6b23da9a83459d961ce6fffa6af0ec1bf39
commit: 77d5cf0c2a25eeec3bd2e5ade17d5be8b91ea05f [15/17] arm64: percpu: Implement preemptible CMPXCHG ops
config: arm64-randconfig-001-20260801 (https://download.01.org/0day-ci/archive/20260801/[email protected]/config)
compiler: clang version 21.1.8 (https://github.com/llvm/llvm-project 2078da43e25a4623cab2d0d60decddf709aaea28)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260801/[email protected]/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
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   In file included from lib/test_bitops.c:10:
   In file included from include/linux/module.h:13:
   In file included from include/linux/stat.h:6:
   In file included from arch/arm64/include/asm/stat.h:12:
   In file included from include/linux/time.h:60:
   In file included from include/linux/time32.h:13:
   In file included from include/linux/timex.h:67:
   In file included from arch/arm64/include/asm/timex.h:8:
   In file included from arch/arm64/include/asm/arch_timer.h:18:
   In file included from include/linux/percpu.h:5:
   In file included from include/linux/alloc_tag.h:12:
>> arch/arm64/include/asm/percpu.h:341:1: error: value size does not match register size specified by the constraint and modifier [-Werror,-Wasm-operand-widths]
     341 | PERCPU_CMPXCHG_OP(w, b, 8)
         | ^
   arch/arm64/include/asm/percpu.h:328:15: note: expanded from macro 'PERCPU_CMPXCHG_OP'
     328 |           [old] "r" (xwreg_zero_extend(old, w, sz)),                    \
         |                      ^
   arch/arm64/include/asm/xwreg.h:11:38: note: expanded from macro 'xwreg_zero_extend'
      11 | #define xwreg_zero_extend(v, xw, sz)    ((xwreg_t(xw))(u##sz)(v))
         |                                         ^
   arch/arm64/include/asm/percpu.h:341:1: note: use constraint modifier "w"
   arch/arm64/include/asm/percpu.h:317:19: note: expanded from macro 'PERCPU_CMPXCHG_OP'
     317 |         "       mov     %[oldval], %[old]\n"                            \
         |                                    ^
   arch/arm64/include/asm/percpu.h:342:1: error: value size does not match register size specified by the constraint and modifier [-Werror,-Wasm-operand-widths]
     342 | PERCPU_CMPXCHG_OP(w, h, 16)
         | ^
   arch/arm64/include/asm/percpu.h:328:15: note: expanded from macro 'PERCPU_CMPXCHG_OP'
     328 |           [old] "r" (xwreg_zero_extend(old, w, sz)),                    \
         |                      ^
   arch/arm64/include/asm/xwreg.h:11:38: note: expanded from macro 'xwreg_zero_extend'
      11 | #define xwreg_zero_extend(v, xw, sz)    ((xwreg_t(xw))(u##sz)(v))
         |                                         ^
   arch/arm64/include/asm/percpu.h:342:1: note: use constraint modifier "w"
   arch/arm64/include/asm/percpu.h:317:19: note: expanded from macro 'PERCPU_CMPXCHG_OP'
     317 |         "       mov     %[oldval], %[old]\n"                            \
         |                                    ^
   arch/arm64/include/asm/percpu.h:343:1: error: value size does not match register size specified by the constraint and modifier [-Werror,-Wasm-operand-widths]
     343 | PERCPU_CMPXCHG_OP(w,  , 32)
         | ^
   arch/arm64/include/asm/percpu.h:328:15: note: expanded from macro 'PERCPU_CMPXCHG_OP'
     328 |           [old] "r" (xwreg_zero_extend(old, w, sz)),                    \
         |                      ^
   arch/arm64/include/asm/xwreg.h:11:38: note: expanded from macro 'xwreg_zero_extend'
      11 | #define xwreg_zero_extend(v, xw, sz)    ((xwreg_t(xw))(u##sz)(v))
         |                                         ^
   arch/arm64/include/asm/percpu.h:343:1: note: use constraint modifier "w"
   arch/arm64/include/asm/percpu.h:317:19: note: expanded from macro 'PERCPU_CMPXCHG_OP'
     317 |         "       mov     %[oldval], %[old]\n"                            \
         |                                    ^
   3 errors generated.


vim +341 arch/arm64/include/asm/percpu.h

   340	
 > 341	PERCPU_CMPXCHG_OP(w, b, 8)
   342	PERCPU_CMPXCHG_OP(w, h, 16)
   343	PERCPU_CMPXCHG_OP(w,  , 32)
   344	PERCPU_CMPXCHG_OP(x,  , 64)
   345	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki