tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 591cd61541b9b95401e17dca24be486e32104cb8 commit: 60f07e22a73d318cddaafa5ef41a10476807cc07 [12323/14039] arm64:uprobe fix the uprobe SWBP_INSN in big-endian config: arm64-randconfig-s051-20221207 compiler: aarch64-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=60f07e22a73d318cddaafa5ef41a10476807cc07 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 60f07e22a73d318cddaafa5ef41a10476807cc07 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 SHELL=/bin/bash kernel/events/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> kernel/events/uprobes.c:223:25: sparse: sparse: restricted __le32 degrades to integer >> kernel/events/uprobes.c:574:56: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected unsigned int [addressable] [usertype] opcode @@ got restricted __le32 [usertype] @@ kernel/events/uprobes.c:574:56: sparse: expected unsigned int [addressable] [usertype] opcode kernel/events/uprobes.c:574:56: sparse: got restricted __le32 [usertype] >> kernel/events/uprobes.c:1483:32: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned int [usertype] insn @@ got restricted __le32 [usertype] @@ kernel/events/uprobes.c:1483:32: sparse: expected unsigned int [usertype] insn kernel/events/uprobes.c:1483:32: sparse: got restricted __le32 [usertype] kernel/events/uprobes.c:1975:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/events/uprobes.c:1975:33: sparse: expected struct spinlock [usertype] *lock kernel/events/uprobes.c:1975:33: sparse: got struct spinlock [noderef] __rcu * kernel/events/uprobes.c:1977:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/events/uprobes.c:1977:35: sparse: expected struct spinlock [usertype] *lock kernel/events/uprobes.c:1977:35: sparse: got struct spinlock [noderef] __rcu * kernel/events/uprobes.c:2278:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/events/uprobes.c:2278:31: sparse: expected struct spinlock [usertype] *lock kernel/events/uprobes.c:2278:31: sparse: got struct spinlock [noderef] __rcu * kernel/events/uprobes.c:2280:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/events/uprobes.c:2280:33: sparse: expected struct spinlock [usertype] *lock kernel/events/uprobes.c:2280:33: sparse: got struct spinlock [noderef] __rcu * kernel/events/uprobes.c: note: in included file: include/linux/rmap.h:410:28: sparse: sparse: context imbalance in '__replace_page' - unexpected unlock kernel/events/uprobes.c: note: in included file (through include/linux/irqflags.h, include/linux/spinlock.h, include/linux/wait.h, ...): arch/arm64/include/asm/percpu.h:127:1: sparse: sparse: cast truncates bits from constant value (ffffffff becomes ff) arch/arm64/include/asm/percpu.h:127:1: sparse: sparse: cast truncates bits from constant value (ffffffff becomes ffff) arch/arm64/include/asm/percpu.h:127:1: sparse: sparse: cast truncates bits from constant value (ffffffff becomes ff) arch/arm64/include/asm/percpu.h:127:1: sparse: sparse: cast truncates bits from constant value (ffffffff becomes ffff) vim +223 kernel/events/uprobes.c 2b144498350860 kernel/uprobes.c Srikar Dronamraju 2012-02-09 214 2b144498350860 kernel/uprobes.c Srikar Dronamraju 2012-02-09 215 /** 5cb4ac3a583d4e kernel/events/uprobes.c Srikar Dronamraju 2012-03-12 216 * is_swbp_insn - check if instruction is breakpoint instruction. 2b144498350860 kernel/uprobes.c Srikar Dronamraju 2012-02-09 217 * @insn: instruction to be checked. 5cb4ac3a583d4e kernel/events/uprobes.c Srikar Dronamraju 2012-03-12 218 * Default implementation of is_swbp_insn 2b144498350860 kernel/uprobes.c Srikar Dronamraju 2012-02-09 219 * Returns true if @insn is a breakpoint instruction. 2b144498350860 kernel/uprobes.c Srikar Dronamraju 2012-02-09 220 */ 5cb4ac3a583d4e kernel/events/uprobes.c Srikar Dronamraju 2012-03-12 221 bool __weak is_swbp_insn(uprobe_opcode_t *insn) 2b144498350860 kernel/uprobes.c Srikar Dronamraju 2012-02-09 222 { 5cb4ac3a583d4e kernel/events/uprobes.c Srikar Dronamraju 2012-03-12 @223 return *insn == UPROBE_SWBP_INSN; 2b144498350860 kernel/uprobes.c Srikar Dronamraju 2012-02-09 224 } 2b144498350860 kernel/uprobes.c Srikar Dronamraju 2012-02-09 225 :::::: The code at line 223 was first introduced by commit :::::: 5cb4ac3a583d4ee18c8682ab857e093c4a0d0895 uprobes/core: Rename bkpt to swbp :::::: TO: Srikar Dronamraju :::::: CC: Ingo Molnar -- 0-DAY CI Kernel Test Service https://01.org/lkp