tree:
https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git
kprobes/kretprobe-stackfix
head: 6e2b8966c87adc1be0fb4a386fb24ae438f4cb79
commit: 663b1b4caed9e4b0ad1be80b30851e68fb9a40eb [8/10] kprobes: Setup instruction pointer
in __kretprobe_trampoline_handler
config: sparc-randconfig-r001-20210316 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git/commit...
git remote add mhiramat
https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git
git fetch --no-tags mhiramat kprobes/kretprobe-stackfix
git checkout 663b1b4caed9e4b0ad1be80b30851e68fb9a40eb
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/sparc/include/asm/thread_info_64.h:31,
from arch/sparc/include/asm/thread_info.h:5,
from include/linux/thread_info.h:58,
from arch/sparc/include/asm/current.h:15,
from include/linux/mutex.h:14,
from include/linux/notifier.h:14,
from include/linux/kprobes.h:22,
from kernel/kprobes.c:21:
kernel/kprobes.c: In function '__kretprobe_trampoline_handler':
> arch/sparc/include/asm/ptrace.h:67:15: warning: assignment to
'long unsigned int' from 'kprobe_opcode_t *' {aka 'unsigned int
*'} makes integer from pointer without a cast [-Wint-conversion]
67 |
(regs)->tpc = (val); \
| ^
kernel/kprobes.c:1901:2: note: in expansion of macro 'instruction_pointer_set'
1901 | instruction_pointer_set(regs, correct_ret_addr);
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/sparc/include/asm/ptrace.h:68:16: warning: assignment to 'long unsigned
int' from 'kprobe_opcode_t *' {aka 'unsigned int *'} makes integer
from pointer without a cast [-Wint-conversion]
68 | (regs)->tnpc = (val)+4; \
| ^
kernel/kprobes.c:1901:2: note: in expansion of macro 'instruction_pointer_set'
1901 | instruction_pointer_set(regs, correct_ret_addr);
| ^~~~~~~~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for FRAME_POINTER
Depends on DEBUG_KERNEL && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS
|| MCOUNT
Selected by
- LATENCYTOP && DEBUG_KERNEL && STACKTRACE_SUPPORT && PROC_FS
&& !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM
&& !ARC && !X86
- LOCKDEP && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT && !MIPS
&& !PPC && !ARM && !S390 && !MICROBLAZE && !ARC
&& !X86
vim +67 arch/sparc/include/asm/ptrace.h
f3ec38d5135ca4 Sam Ravnborg 2009-01-02 62
dff933da765fd4 Al Viro 2012-09-26 63 #define force_successful_syscall_return()
set_thread_noerror(1)
f3ec38d5135ca4 Sam Ravnborg 2009-01-02 64 #define user_mode(regs) (!((regs)->tstate
& TSTATE_PRIV))
f3ec38d5135ca4 Sam Ravnborg 2009-01-02 65 #define instruction_pointer(regs)
((regs)->tpc)
e8f4aa6087fa80 Allen Pais 2016-10-13 66 #define instruction_pointer_set(regs, val) do
{ \
e8f4aa6087fa80 Allen Pais 2016-10-13 @67 (regs)->tpc = (val); \
e8f4aa6087fa80 Allen Pais 2016-10-13 68 (regs)->tnpc = (val)+4; \
e8f4aa6087fa80 Allen Pais 2016-10-13 69 } while (0)
f3ec38d5135ca4 Sam Ravnborg 2009-01-02 70 #define user_stack_pointer(regs)
((regs)->u_regs[UREG_FP])
d7e7528bcd456f Eric Paris 2012-01-03 71 static inline int is_syscall_success(struct
pt_regs *regs)
d7e7528bcd456f Eric Paris 2012-01-03 72 {
d7e7528bcd456f Eric Paris 2012-01-03 73 return !(regs->tstate & (TSTATE_XCARRY
| TSTATE_ICARRY));
d7e7528bcd456f Eric Paris 2012-01-03 74 }
d7e7528bcd456f Eric Paris 2012-01-03 75
:::::: The code at line 67 was first introduced by commit
:::::: e8f4aa6087fa80732382881ef7c0c96733bb1984 sparc64:Support User Probes for sparc
:::::: TO: Allen Pais <allen.pais(a)oracle.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org