tree:
https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git refcount/full
head: 816607eeb532d58450b9b09ff241987928e85a9b
commit: 3a74865d04f1c603566b8b43b5225cc897431fb6 [4/10] lib/refcount: Move bulk of
REFCOUNT_FULL implementation into header
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-rc1-43-g0ccb3b4-dirty
git checkout 3a74865d04f1c603566b8b43b5225cc897431fb6
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:356:23: sparse: sparse: incompatible types in comparison expression
(different address spaces):
kernel/exit.c:356:23: sparse: struct task_struct [noderef] <asn:4> *
kernel/exit.c:356:23: sparse: struct task_struct *
kernel/exit.c:380:9: sparse: sparse: incompatible types in comparison expression
(different address spaces):
kernel/exit.c:380:9: sparse: struct list_head *
kernel/exit.c:380:9: sparse: struct list_head [noderef] <asn:4> *
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:380:9: sparse: sparse: dereference of noderef expression
> include/linux/sched/task.h:108:34: sparse: sparse: context
imbalance in 'wait_task_zombie' - unexpected unlock
include/linux/sched/task.h:108:34: sparse: sparse: context imbalance in
'wait_task_stopped' - unexpected unlock
> include/linux/sched/task.h:108:34: sparse: sparse: context
imbalance in 'wait_task_continued' - unexpected unlock
kernel/exit.c:1490:9: sparse: sparse: context imbalance in 'do_wait' - different
lock contexts for basic block
vim +/wait_task_zombie +108 include/linux/sched/task.h
6f175fc9536355 Ingo Molnar 2017-02-06 107
7b3c92b85a65c2 Matthew Wilcox (Oracle 2019-07-04 @108) static inline struct task_struct
*get_task_struct(struct task_struct *t)
7b3c92b85a65c2 Matthew Wilcox (Oracle 2019-07-04 109) {
7b3c92b85a65c2 Matthew Wilcox (Oracle 2019-07-04 110) refcount_inc(&t->usage);
7b3c92b85a65c2 Matthew Wilcox (Oracle 2019-07-04 111) return t;
7b3c92b85a65c2 Matthew Wilcox (Oracle 2019-07-04 112) }
cda66725c1444d Ingo Molnar 2017-02-05 113
:::::: The code at line 108 was first introduced by commit
:::::: 7b3c92b85a65c2db1f542265bc98e1f9e3056eba sched/core: Convert get_task_struct() to
return the task
:::::: TO: Matthew Wilcox (Oracle) <willy(a)infradead.org>
:::::: CC: Ingo Molnar <mingo(a)kernel.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation