tree:
https://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git pidfd_fdinfo_v2
head: 63fdb1aa04b7ced75d0a4bae0b391ce44ae38387
commit: ba632040fdee631a84ff1ca507c2b60cacc2ebfe [6/7] exit: use task_alive() in
do_wait()
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-dirty
git checkout ba632040fdee631a84ff1ca507c2b60cacc2ebfe
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
kernel/exit.c:100:19: sparse: sparse: incompatible types in comparison expression
(different address spaces):
kernel/exit.c:100:19: sparse: struct sighand_struct [noderef] <asn:4> *
kernel/exit.c:100:19: sparse: struct sighand_struct *
kernel/exit.c:278:37: sparse: sparse: incorrect type in argument 1 (different address
spaces) @@ expected struct task_struct *tsk @@ got struct task_structstruct
task_struct *tsk @@
kernel/exit.c:278:37: sparse: expected struct task_struct *tsk
kernel/exit.c:278:37: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
kernel/exit.c:281:32: sparse: sparse: incorrect type in argument 1 (different address
spaces) @@ expected struct task_struct *task @@ got struct task_structstruct
task_struct *task @@
kernel/exit.c:281:32: sparse: expected struct task_struct *task
kernel/exit.c:281:32: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
kernel/exit.c:282:35: sparse: sparse: incorrect type in argument 1 (different address
spaces) @@ expected struct task_struct *task @@ got struct task_structstruct
task_struct *task @@
kernel/exit.c:282:35: sparse: expected struct task_struct *task
kernel/exit.c:282:35: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
kernel/exit.c:327:24: sparse: sparse: incorrect type in assignment (different address
spaces) @@ expected struct task_struct *parent @@ got struct task_structstruct
task_struct *parent @@
kernel/exit.c:327:24: sparse: expected struct task_struct *parent
kernel/exit.c:327:24: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
kernel/exit.c:562:29: sparse: sparse: incorrect type in assignment (different address
spaces) @@ expected struct task_struct *reaper @@ got struct task_structstruct
task_struct *reaper @@
kernel/exit.c:562:29: sparse: expected struct task_struct *reaper
kernel/exit.c:562:29: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
kernel/exit.c:564:29: sparse: sparse: incorrect type in assignment (different address
spaces) @@ expected struct task_struct *reaper @@ got struct task_structstruct
task_struct *reaper @@
kernel/exit.c:564:29: sparse: expected struct task_struct *reaper
kernel/exit.c:564:29: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
kernel/exit.c:626:40: sparse: sparse: incorrect type in assignment (different address
spaces) @@ expected struct task_struct [noderef] <asn:4> *real_parent @@ got
task_struct [noderef] <asn:4> *real_parent @@
kernel/exit.c:626:40: sparse: expected struct task_struct [noderef] <asn:4>
*real_parent
kernel/exit.c:626:40: sparse: got struct task_struct *[assigned] reaper
kernel/exit.c:627:25: sparse: sparse: incompatible types in comparison expression
(different address spaces):
kernel/exit.c:627:25: sparse: struct task_struct [noderef] <asn:4> *
kernel/exit.c:627:25: sparse: struct task_struct *
include/linux/ptrace.h:99:40: sparse: sparse: incorrect type in argument 1 (different
address spaces) @@ expected struct task_struct *p1 @@ got struct task_structstruct
task_struct *p1 @@
include/linux/ptrace.h:99:40: sparse: expected struct task_struct *p1
include/linux/ptrace.h:99:40: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
include/linux/ptrace.h:99:60: sparse: sparse: incorrect type in argument 2 (different
address spaces) @@ expected struct task_struct *p2 @@ got struct task_structstruct
task_struct *p2 @@
include/linux/ptrace.h:99:60: sparse: expected struct task_struct *p2
include/linux/ptrace.h:99:60: sparse: got struct task_struct [noderef] <asn:4>
*parent
kernel/exit.c:715:17: sparse: sparse: symbol 'do_exit' redeclared with
different type (originally declared at include/linux/kernel.h:328) - different modifiers
kernel/exit.c:879:6: sparse: sparse: symbol 'complete_and_exit' redeclared with
different type (originally declared at include/linux/kernel.h:329) - different modifiers
include/linux/ptrace.h:99:40: sparse: sparse: incorrect type in argument 1 (different
address spaces) @@ expected struct task_struct *p1 @@ got struct task_structstruct
task_struct *p1 @@
include/linux/ptrace.h:99:40: sparse: expected struct task_struct *p1
include/linux/ptrace.h:99:40: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
include/linux/ptrace.h:99:60: sparse: sparse: incorrect type in argument 2 (different
address spaces) @@ expected struct task_struct *p2 @@ got struct task_structstruct
task_struct *p2 @@
include/linux/ptrace.h:99:60: sparse: expected struct task_struct *p2
include/linux/ptrace.h:99:60: sparse: got struct task_struct [noderef] <asn:4>
*parent
include/linux/ptrace.h:99:40: sparse: sparse: incorrect type in argument 1 (different
address spaces) @@ expected struct task_struct *p1 @@ got struct task_structstruct
task_struct *p1 @@
include/linux/ptrace.h:99:40: sparse: expected struct task_struct *p1
include/linux/ptrace.h:99:40: sparse: got struct task_struct [noderef] <asn:4>
*real_parent
include/linux/ptrace.h:99:60: sparse: sparse: incorrect type in argument 2 (different
address spaces) @@ expected struct task_struct *p2 @@ got struct task_structstruct
task_struct *p2 @@
include/linux/ptrace.h:99:60: sparse: expected struct task_struct *p2
include/linux/ptrace.h:99:60: sparse: got struct task_struct [noderef] <asn:4>
*parent
kernel/exit.c:1429:59: sparse: sparse: incompatible types in comparison expression
(different base types):
kernel/exit.c:1429:59: sparse: void *
kernel/exit.c:1429:59: sparse: struct task_struct [noderef] <asn:4> *
kernel/exit.c:1732:13: sparse: sparse: symbol 'abort' was not declared. Should
it be static?
kernel/exit.c:1007:17: sparse: sparse: context imbalance in 'wait_task_zombie'
- unexpected unlock
kernel/exit.c:1199:24: sparse: sparse: context imbalance in 'wait_task_stopped'
- unexpected unlock
include/linux/uidgid.h:168:9: sparse: sparse: context imbalance in
'wait_task_continued' - unexpected unlock
> arch/x86/include/asm/current.h:15:16: sparse: sparse: context
imbalance in 'do_wait' - wrong count at exit
vim +/do_wait +15 arch/x86/include/asm/current.h
f0766440dda7ac include/asm-x86/current.h Christoph Lameter 2008-05-09 12
f0766440dda7ac include/asm-x86/current.h Christoph Lameter 2008-05-09 13 static
__always_inline struct task_struct *get_current(void)
f0766440dda7ac include/asm-x86/current.h Christoph Lameter 2008-05-09 14 {
c6ae41e7d469f0 arch/x86/include/asm/current.h Alex Shi 2012-05-11 @15 return
this_cpu_read_stable(current_task);
f0766440dda7ac include/asm-x86/current.h Christoph Lameter 2008-05-09 16 }
f0766440dda7ac include/asm-x86/current.h Christoph Lameter 2008-05-09 17
:::::: The code at line 15 was first introduced by commit
:::::: c6ae41e7d469f00d9c92a2b2887c7235d121c009 x86: replace percpu_xxx funcs with
this_cpu_xxx
:::::: TO: Alex Shi <alex.shi(a)intel.com>
:::::: CC: Tejun Heo <tj(a)kernel.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation