Re: [PATCH] csky: fix csky_cmpxchg_fixup not working

From: kernel test robot
Date: Tue Oct 15 2024 - 22:13:50 EST


Hi Yang,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v6.12-rc3 next-20241015]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Yang-Li/csky-fix-csky_cmpxchg_fixup-not-working/20241008-134806
base: linus/master
patch link: https://lore.kernel.org/r/20241008054615.43062-1-yang.li85200%40gmail.com
patch subject: [PATCH] csky: fix csky_cmpxchg_fixup not working
config: csky-allnoconfig (https://download.01.org/0day-ci/archive/20241016/202410160952.7oClZ4pG-lkp@xxxxxxxxx/config)
compiler: csky-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241016/202410160952.7oClZ4pG-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
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410160952.7oClZ4pG-lkp@xxxxxxxxx/

All error/warnings (new ones prefixed by >>):

arch/csky/mm/fault.c: In function 'csky_cmpxchg_fixup':
>> arch/csky/mm/fault.c:48:39: warning: comparison between pointer and integer
48 | if (instruction_pointer(regs) == &csky_cmpxchg_stw)
| ^~
>> arch/csky/mm/fault.c:49:47: error: passing argument 2 of 'instruction_pointer_set' makes integer from pointer without a cast [-Wint-conversion]
49 | instruction_pointer_set(regs, &csky_cmpxchg_ldw);
| ^~~~~~~~~~~~~~~~~
| |
| long unsigned int *
In file included from arch/csky/include/asm/processor.h:8,
from arch/csky/include/asm/thread_info.h:10,
from include/linux/thread_info.h:60,
from include/asm-generic/current.h:6,
from ./arch/csky/include/generated/asm/current.h:1,
from include/linux/mutex.h:14,
from include/linux/notifier.h:14,
from include/linux/kprobes.h:21,
from arch/csky/mm/fault.c:5:
arch/csky/include/asm/ptrace.h:29:58: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
29 | unsigned long val)
| ~~~~~~~~~~~~~~^~~


vim +/instruction_pointer_set +49 arch/csky/mm/fault.c

34
35 #ifdef CONFIG_CPU_HAS_LDSTEX
36 static inline void csky_cmpxchg_fixup(struct pt_regs *regs)
37 {
38 return;
39 }
40 #else
41 extern unsigned long csky_cmpxchg_ldw;
42 extern unsigned long csky_cmpxchg_stw;
43 static inline void csky_cmpxchg_fixup(struct pt_regs *regs)
44 {
45 if (trap_no(regs) != VEC_TLBMODIFIED)
46 return;
47
> 48 if (instruction_pointer(regs) == &csky_cmpxchg_stw)
> 49 instruction_pointer_set(regs, &csky_cmpxchg_ldw);
50 return;
51 }
52 #endif
53

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