Hi Eric, [auto build test WARNING on linus/master] [also build test WARNING on v4.12-rc2 next-20170523] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Eric-W-Biederman/ptrace-Properly-initialize-ptracer_cred-on-fork/20170523-143551 config: ia64-allnoconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 6.2.0 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=ia64 All warnings (new ones prefixed by >>): In file included from arch/ia64/include/asm/ptrace.h:44:0, from arch/ia64/include/asm/processor.h:19, from arch/ia64/include/asm/thread_info.h:11, from include/linux/thread_info.h:37, from include/asm-generic/preempt.h:4, from ./arch/ia64/include/generated/asm/preempt.h:1, from include/linux/preempt.h:80, from include/linux/spinlock.h:50, from include/linux/seqlock.h:35, from include/linux/time.h:5, from include/linux/stat.h:18, from include/linux/module.h:10, from init/main.c:16: include/linux/ptrace.h: In function 'ptrace_init_task': >> arch/ia64/include/asm/current.h:15:17: warning: passing argument 3 of '__ptrace_link' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^ include/linux/ptrace.h:210:41: note: in expansion of macro 'current' __ptrace_link(child, current->parent, current->ptracer_cred); ^~~~~~~ In file included from include/linux/ftrace.h:13:0, from include/linux/perf_event.h:47, from include/linux/trace_events.h:9, from include/trace/syscall.h:6, from include/linux/syscalls.h:82, from init/main.c:20: include/linux/ptrace.h:56:13: note: expected 'struct cred *' but argument is of type 'const struct cred *' extern void __ptrace_link(struct task_struct *child, ^~~~~~~~~~~~~ -- In file included from arch/ia64/include/asm/ptrace.h:44:0, from arch/ia64/include/asm/processor.h:19, from arch/ia64/include/asm/thread_info.h:11, from include/linux/thread_info.h:37, from include/asm-generic/preempt.h:4, from ./arch/ia64/include/generated/asm/preempt.h:1, from include/linux/preempt.h:80, from include/linux/spinlock.h:50, from include/linux/wait.h:8, from include/linux/fs.h:5, from arch/ia64/kernel/sys_ia64.c:9: include/linux/ptrace.h: In function 'ptrace_init_task': >> arch/ia64/include/asm/current.h:15:17: warning: passing argument 3 of '__ptrace_link' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^ include/linux/ptrace.h:210:41: note: in expansion of macro 'current' __ptrace_link(child, current->parent, current->ptracer_cred); ^~~~~~~ In file included from include/linux/ftrace.h:13:0, from include/linux/perf_event.h:47, from include/linux/trace_events.h:9, from include/trace/syscall.h:6, from include/linux/syscalls.h:82, from arch/ia64/kernel/sys_ia64.c:18: include/linux/ptrace.h:56:13: note: expected 'struct cred *' but argument is of type 'const struct cred *' extern void __ptrace_link(struct task_struct *child, ^~~~~~~~~~~~~ arch/ia64/kernel/sys_ia64.c: In function 'arch_get_unmapped_area': arch/ia64/kernel/sys_ia64.c:31:20: warning: unused variable 'mm' [-Wunused-variable] struct mm_struct *mm = current->mm; ^~ -- In file included from include/linux/sched.h:11:0, from kernel/ptrace.c:12: include/linux/ptrace.h: In function 'ptrace_init_task': >> arch/ia64/include/asm/current.h:15:17: warning: passing argument 3 of '__ptrace_link' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^ include/linux/ptrace.h:210:41: note: in expansion of macro 'current' __ptrace_link(child, current->parent, current->ptracer_cred); ^~~~~~~ In file included from kernel/ptrace.c:20:0: include/linux/ptrace.h:56:13: note: expected 'struct cred *' but argument is of type 'const struct cred *' extern void __ptrace_link(struct task_struct *child, ^~~~~~~~~~~~~ In file included from include/linux/rculist.h:10:0, from include/linux/pid.h:4, from include/linux/sched.h:13, from kernel/ptrace.c:12: kernel/ptrace.c: In function 'ptrace_link': include/linux/rcupdate.h:578:1: warning: passing argument 3 of '__ptrace_link' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] ({ \ ^ include/linux/rcupdate.h:701:2: note: in expansion of macro '__rcu_dereference_check' __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu) ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rcupdate.h:760:28: note: in expansion of macro 'rcu_dereference_check' #define rcu_dereference(p) rcu_dereference_check(p, 0) ^~~~~~~~~~~~~~~~~~~~~ include/linux/cred.h:297:2: note: in expansion of macro 'rcu_dereference' rcu_dereference((task)->real_cred) ^~~~~~~~~~~~~~~ kernel/ptrace.c:81:35: note: in expansion of macro '__task_cred' __ptrace_link(child, new_parent, __task_cred(new_parent)); ^~~~~~~~~~~ kernel/ptrace.c:63:6: note: expected 'struct cred *' but argument is of type 'const struct cred *' void __ptrace_link(struct task_struct *child, struct task_struct *new_parent, ^~~~~~~~~~~~~ vim +15 arch/ia64/include/asm/current.h ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 1 #ifndef _ASM_IA64_CURRENT_H ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 2 #define _ASM_IA64_CURRENT_H ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 3 ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 4 /* ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 5 * Modified 1998-2000 ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 6 * David Mosberger-Tang , Hewlett-Packard Co ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 7 */ ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 8 ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 9 #include ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 10 ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 11 /* ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 12 * In kernel mode, thread pointer (r13) is used to point to the current task ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 13 * structure. ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 14 */ ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 @15 #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 16 ^1da177e include/asm-ia64/current.h Linus Torvalds 2005-04-16 17 #endif /* _ASM_IA64_CURRENT_H */ :::::: The code at line 15 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation