CC: [email protected]
CC: [email protected]
TO: Michael Ellerman <[email protected]>
CC: Nathan Chancellor <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   6f513529296fd4f696afb4354c46508abe646541
commit: e432fe97f3e5de325b40021e505cce53877586c5 powerpc/bug: Cast to unsigned 
long before passing to inline asm
date:   3 months ago
:::::: branch date: 5 hours ago
:::::: commit date: 3 months ago
config: powerpc64-randconfig-s031-20211210 
(https://download.01.org/0day-ci/archive/20211211/[email protected]/config)
compiler: powerpc64-linux-gcc (GCC) 11.2.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e432fe97f3e5de325b40021e505cce53877586c5
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout e432fe97f3e5de325b40021e505cce53877586c5
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc 
SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
   kernel/ptrace.c:54:22: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/ptrace.c:54:22: sparse:    struct task_struct *
   kernel/ptrace.c:54:22: sparse:    struct task_struct [noderef] __rcu *
   kernel/ptrace.c:73:23: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct task_struct [noderef] __rcu 
*parent @@     got struct task_struct *new_parent @@
   kernel/ptrace.c:73:23: sparse:     expected struct task_struct [noderef] 
__rcu *parent
   kernel/ptrace.c:73:23: sparse:     got struct task_struct *new_parent
   kernel/ptrace.c:74:29: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct cred const [noderef] __rcu 
*ptracer_cred @@     got struct cred const * @@
   kernel/ptrace.c:74:29: sparse:     expected struct cred const [noderef] 
__rcu *ptracer_cred
   kernel/ptrace.c:74:29: sparse:     got struct cred const *
   kernel/ptrace.c:128:18: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct cred const *old_cred @@     
got struct cred const [noderef] __rcu *ptracer_cred @@
   kernel/ptrace.c:128:18: sparse:     expected struct cred const *old_cred
   kernel/ptrace.c:128:18: sparse:     got struct cred const [noderef] __rcu 
*ptracer_cred
   kernel/ptrace.c:132:25: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:132:25: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:132:25: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:170:27: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:170:27: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:170:27: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:197:28: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:197:28: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:197:28: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:203:30: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:203:30: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:203:30: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:213:9: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/ptrace.c:213:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/ptrace.c:213:9: sparse:    struct task_struct *
   kernel/ptrace.c:213:9: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/ptrace.c:213:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/ptrace.c:213:9: sparse:    struct task_struct *
   kernel/ptrace.c:213:9: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/ptrace.c:213:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/ptrace.c:213:9: sparse:    struct task_struct *
>> kernel/ptrace.c:213:9: sparse: sparse: cast from unknown type
   kernel/ptrace.c:258:44: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/ptrace.c:258:44: sparse:    struct task_struct [noderef] __rcu *
   kernel/ptrace.c:258:44: sparse:    struct task_struct *
   kernel/ptrace.c:432:24: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:432:24: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:432:24: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:455:26: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:455:26: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:455:26: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:491:54: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *parent @@     
got struct task_struct [noderef] __rcu *parent @@
   kernel/ptrace.c:491:54: sparse:     expected struct task_struct *parent
   kernel/ptrace.c:491:54: sparse:     got struct task_struct [noderef] __rcu 
*parent
   kernel/ptrace.c:499:53: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct task_struct *new_parent @@    
 got struct task_struct [noderef] __rcu *real_parent @@
   kernel/ptrace.c:499:53: sparse:     expected struct task_struct *new_parent
   kernel/ptrace.c:499:53: sparse:     got struct task_struct [noderef] __rcu 
*real_parent
   kernel/ptrace.c:547:41: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *p1 @@     got 
struct task_struct [noderef] __rcu *real_parent @@
   kernel/ptrace.c:547:41: sparse:     expected struct task_struct *p1
   kernel/ptrace.c:547:41: sparse:     got struct task_struct [noderef] __rcu 
*real_parent
   kernel/ptrace.c:549:50: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct sighand_struct *sigh @@     
got struct sighand_struct [noderef] __rcu *sighand @@
   kernel/ptrace.c:549:50: sparse:     expected struct sighand_struct *sigh
   kernel/ptrace.c:549:50: sparse:     got struct sighand_struct [noderef] 
__rcu *sighand
   kernel/ptrace.c:751:37: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:751:37: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:751:37: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:759:39: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:759:39: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:759:39: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:882:37: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:882:37: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:882:37: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:886:39: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:886:39: sparse:     expected struct spinlock [usertype] *lock
   kernel/ptrace.c:886:39: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:1116:37: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:1116:37: sparse:     expected struct spinlock [usertype] 
*lock
   kernel/ptrace.c:1116:37: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:1118:39: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] __rcu * @@
   kernel/ptrace.c:1118:39: sparse:     expected struct spinlock [usertype] 
*lock
   kernel/ptrace.c:1118:39: sparse:     got struct spinlock [noderef] __rcu *
   kernel/ptrace.c:497:38: sparse: sparse: dereference of noderef expression
   kernel/ptrace.c: note: in included file (through include/linux/rcuwait.h, 
include/linux/percpu-rwsem.h, include/linux/fs.h, ...):
   include/linux/sched/signal.h:714:37: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected struct spinlock 
[usertype] *lock @@     got struct spinlock [noderef] __rcu * @@
   include/linux/sched/signal.h:714:37: sparse:     expected struct spinlock 
[usertype] *lock
   include/linux/sched/signal.h:714:37: sparse:     got struct spinlock 
[noderef] __rcu *
   kernel/ptrace.c:698:9: sparse: sparse: context imbalance in 
'ptrace_getsiginfo' - different lock contexts for basic block
   include/linux/sched/signal.h:714:37: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected struct spinlock 
[usertype] *lock @@     got struct spinlock [noderef] __rcu * @@
   include/linux/sched/signal.h:714:37: sparse:     expected struct spinlock 
[usertype] *lock
   include/linux/sched/signal.h:714:37: sparse:     got struct spinlock 
[noderef] __rcu *
   kernel/ptrace.c:714:9: sparse: sparse: context imbalance in 
'ptrace_setsiginfo' - different lock contexts for basic block
   kernel/ptrace.c:888:9: sparse: sparse: context imbalance in 'ptrace_resume' 
- different lock contexts for basic block
   include/linux/sched/signal.h:714:37: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected struct spinlock 
[usertype] *lock @@     got struct spinlock [noderef] __rcu * @@
   include/linux/sched/signal.h:714:37: sparse:     expected struct spinlock 
[usertype] *lock
   include/linux/sched/signal.h:714:37: sparse:     got struct spinlock 
[noderef] __rcu *
   include/linux/sched/signal.h:714:37: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected struct spinlock 
[usertype] *lock @@     got struct spinlock [noderef] __rcu * @@
   include/linux/sched/signal.h:714:37: sparse:     expected struct spinlock 
[usertype] *lock
   include/linux/sched/signal.h:714:37: sparse:     got struct spinlock 
[noderef] __rcu *
   kernel/ptrace.c:1270:9: sparse: sparse: context imbalance in 
'ptrace_request' - different lock contexts for basic block
--
   kernel/sched/rt.c:913:70: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/sched/rt.c:913:70: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:913:70: sparse:    struct task_struct *
   kernel/sched/rt.c:2223:25: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/sched/rt.c:2223:25: sparse:    struct task_struct *
   kernel/sched/rt.c:2223:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:2223:25: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/sched/rt.c:2223:25: sparse:    struct task_struct *
   kernel/sched/rt.c:2223:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:2223:25: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/sched/rt.c:2223:25: sparse:    struct task_struct *
   kernel/sched/rt.c:2223:25: sparse:    struct task_struct [noderef] __rcu *
>> kernel/sched/rt.c:2223:25: sparse: sparse: cast from unknown type
   kernel/sched/rt.c:999:38: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected struct task_struct *curr @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:999:38: sparse:     expected struct task_struct *curr
   kernel/sched/rt.c:999:38: sparse:     got struct task_struct [noderef] __rcu 
*curr
   kernel/sched/rt.c:1426:31: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:1426:31: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:1426:31: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/rt.c:1753:9: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct sched_domain *[assigned] sd 
@@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/rt.c:1753:9: sparse:     expected struct sched_domain 
*[assigned] sd
   kernel/sched/rt.c:1753:9: sparse:     got struct sched_domain [noderef] 
__rcu *parent
   kernel/sched/rt.c:1446:14: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct task_struct *curr @@     got 
struct task_struct [noderef] __rcu * @@
   kernel/sched/rt.c:1446:14: sparse:     expected struct task_struct *curr
   kernel/sched/rt.c:1446:14: sparse:     got struct task_struct [noderef] 
__rcu *
   kernel/sched/rt.c:1511:45: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:1511:45: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:1511:45: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/rt.c:1572:67: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *tsk @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:1572:67: sparse:     expected struct task_struct *tsk
   kernel/sched/rt.c:1572:67: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/rt.c:1895:40: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *task @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:1895:40: sparse:     expected struct task_struct *task
   kernel/sched/rt.c:1895:40: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/rt.c:1916:13: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/sched/rt.c:1916:13: sparse:    struct task_struct *
   kernel/sched/rt.c:1916:13: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:1916:13: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/sched/rt.c:1916:13: sparse:    struct task_struct *
   kernel/sched/rt.c:1916:13: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:1916:13: sparse: sparse: incompatible types in comparison 
expression (different address spaces):
   kernel/sched/rt.c:1916:13: sparse:    struct task_struct *
   kernel/sched/rt.c:1916:13: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:1916:13: sparse: sparse: cast from unknown type
   kernel/sched/rt.c:2274:54: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *tsk @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:2274:54: sparse:     expected struct task_struct *tsk
   kernel/sched/rt.c:2274:54: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/rt.c:2276:40: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:2276:40: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:2276:40: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/rt.c:2276:61: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:2276:61: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:2276:61: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/rt.c: note: in included file:
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
--
   kernel/sched/deadline.c:2150:13: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/deadline.c:2150:13: sparse:    struct task_struct *
   kernel/sched/deadline.c:2150:13: sparse:    struct task_struct [noderef] 
__rcu *
   kernel/sched/deadline.c:2150:13: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/deadline.c:2150:13: sparse:    struct task_struct *
   kernel/sched/deadline.c:2150:13: sparse:    struct task_struct [noderef] 
__rcu *
   kernel/sched/deadline.c:2150:13: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/deadline.c:2150:13: sparse:    struct task_struct *
   kernel/sched/deadline.c:2150:13: sparse:    struct task_struct [noderef] 
__rcu *
>> kernel/sched/deadline.c:2150:13: sparse: sparse: cast from unknown type
   kernel/sched/deadline.c:2278:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/deadline.c:2278:25: sparse:    struct task_struct *
   kernel/sched/deadline.c:2278:25: sparse:    struct task_struct [noderef] 
__rcu *
   kernel/sched/deadline.c:2278:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/deadline.c:2278:25: sparse:    struct task_struct *
   kernel/sched/deadline.c:2278:25: sparse:    struct task_struct [noderef] 
__rcu *
   kernel/sched/deadline.c:2278:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/deadline.c:2278:25: sparse:    struct task_struct *
   kernel/sched/deadline.c:2278:25: sparse:    struct task_struct [noderef] 
__rcu *
   kernel/sched/deadline.c:2278:25: sparse: sparse: cast from unknown type
   kernel/sched/deadline.c:1798:42: sparse: sparse: incorrect type in argument 
2 (different address spaces) @@     expected struct sched_dl_entity *b @@     
got struct sched_dl_entity [noderef] __rcu * @@
   kernel/sched/deadline.c:1798:42: sparse:     expected struct sched_dl_entity 
*b
   kernel/sched/deadline.c:1798:42: sparse:     got struct sched_dl_entity 
[noderef] __rcu *
   kernel/sched/deadline.c:1809:38: sparse: sparse: incorrect type in argument 
1 (different address spaces) @@     expected struct task_struct *tsk @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:1809:38: sparse:     expected struct task_struct *tsk
   kernel/sched/deadline.c:1809:38: sparse:     got struct task_struct 
[noderef] __rcu *curr
   kernel/sched/deadline.c:1114:23: sparse: sparse: incorrect type in argument 
1 (different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:1114:23: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:1114:23: sparse:     got struct task_struct 
[noderef] __rcu *curr
   kernel/sched/deadline.c:1243:38: sparse: sparse: incorrect type in 
initializer (different address spaces) @@     expected struct task_struct *curr 
@@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:1243:38: sparse:     expected struct task_struct 
*curr
   kernel/sched/deadline.c:1243:38: sparse:     got struct task_struct 
[noderef] __rcu *curr
   kernel/sched/deadline.c:2006:9: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct sched_domain *[assigned] sd 
@@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/deadline.c:2006:9: sparse:     expected struct sched_domain 
*[assigned] sd
   kernel/sched/deadline.c:2006:9: sparse:     got struct sched_domain 
[noderef] __rcu *parent
   kernel/sched/deadline.c:1683:14: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected struct task_struct *curr 
@@     got struct task_struct [noderef] __rcu * @@
   kernel/sched/deadline.c:1683:14: sparse:     expected struct task_struct 
*curr
   kernel/sched/deadline.c:1683:14: sparse:     got struct task_struct 
[noderef] __rcu *
   kernel/sched/deadline.c:1759:43: sparse: sparse: incorrect type in argument 
2 (different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:1759:43: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:1759:43: sparse:     got struct task_struct 
[noderef] __rcu *curr
   kernel/sched/deadline.c:2323:38: sparse: sparse: incorrect type in argument 
1 (different address spaces) @@     expected struct task_struct *tsk @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:2323:38: sparse:     expected struct task_struct *tsk
   kernel/sched/deadline.c:2323:38: sparse:     got struct task_struct 
[noderef] __rcu *curr
   kernel/sched/deadline.c:2325:23: sparse: sparse: incorrect type in argument 
1 (different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:2325:23: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:2325:23: sparse:     got struct task_struct 
[noderef] __rcu *curr
   kernel/sched/deadline.c:2327:44: sparse: sparse: incorrect type in argument 
2 (different address spaces) @@     expected struct sched_dl_entity *b @@     
got struct sched_dl_entity [noderef] __rcu * @@
   kernel/sched/deadline.c:2327:44: sparse:     expected struct sched_dl_entity 
*b
   kernel/sched/deadline.c:2327:44: sparse:     got struct sched_dl_entity 
[noderef] __rcu *
   kernel/sched/deadline.c:2491:22: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/deadline.c:2491:22: sparse:    struct task_struct [noderef] 
__rcu *
   kernel/sched/deadline.c:2491:22: sparse:    struct task_struct *
   kernel/sched/deadline.c:1142:24: sparse: sparse: context imbalance in 
'dl_task_timer' - wrong count at exit
   kernel/sched/deadline.c:1381:24: sparse: sparse: context imbalance in 
'inactive_task_timer' - wrong count at exit
   kernel/sched/deadline.c: note: in included file:
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
--
   kernel/sched/core.c:949:38: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected struct task_struct *curr @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:949:38: sparse:     expected struct task_struct *curr
   kernel/sched/core.c:949:38: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:1004:9: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct sched_domain *[assigned] sd 
@@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/core.c:1004:9: sparse:     expected struct sched_domain 
*[assigned] sd
   kernel/sched/core.c:1004:9: sparse:     got struct sched_domain [noderef] 
__rcu *parent
   kernel/sched/core.c:2074:33: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:2074:33: sparse:     expected struct task_struct *p
   kernel/sched/core.c:2074:33: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:2074:68: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *tsk @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:2074:68: sparse:     expected struct task_struct *tsk
   kernel/sched/core.c:2074:68: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:3286:17: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct sched_domain *[assigned] sd 
@@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/core.c:3286:17: sparse:     expected struct sched_domain 
*[assigned] sd
   kernel/sched/core.c:3286:17: sparse:     got struct sched_domain [noderef] 
__rcu *parent
   kernel/sched/core.c:3486:36: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct const *p @@     
got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:3486:36: sparse:     expected struct task_struct const *p
   kernel/sched/core.c:3486:36: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:8455:43: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected struct task_struct *push_task @@     
got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:8455:43: sparse:     expected struct task_struct 
*push_task
   kernel/sched/core.c:8455:43: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:4941:38: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected struct task_struct *curr @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:4941:38: sparse:     expected struct task_struct *curr
   kernel/sched/core.c:4941:38: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:5829:14: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct task_struct *prev @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:5829:14: sparse:     expected struct task_struct *prev
   kernel/sched/core.c:5829:14: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:6422:17: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/core.c:6422:17: sparse:    struct task_struct *
   kernel/sched/core.c:6422:17: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:6422:17: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/core.c:6422:17: sparse:    struct task_struct *
   kernel/sched/core.c:6422:17: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:6422:17: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/core.c:6422:17: sparse:    struct task_struct *
   kernel/sched/core.c:6422:17: sparse:    struct task_struct [noderef] __rcu *
>> kernel/sched/core.c:6422:17: sparse: sparse: cast from unknown type
   kernel/sched/core.c:6629:22: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/core.c:6629:22: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:6629:22: sparse:    struct task_struct *
   kernel/sched/core.c:10388:25: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *p @@     got 
struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:10388:25: sparse:     expected struct task_struct *p
   kernel/sched/core.c:10388:25: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:453:6: sparse: sparse: context imbalance in 
'raw_spin_rq_lock_nested' - wrong count at exit
   kernel/sched/core.c:486:23: sparse: sparse: context imbalance in 
'raw_spin_rq_trylock' - wrong count at exit
   kernel/sched/core.c:502:6: sparse: sparse: context imbalance in 
'raw_spin_rq_unlock' - unexpected unlock
   kernel/sched/core.c: note: in included file:
   kernel/sched/sched.h:1539:9: sparse: sparse: context imbalance in 
'__task_rq_lock' - wrong count at exit
   kernel/sched/sched.h:1539:9: sparse: sparse: context imbalance in 
'task_rq_lock' - wrong count at exit
   kernel/sched/core.c: note: in included file:
   kernel/sched/pelt.h:76:13: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct const *p @@     
got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/pelt.h:76:13: sparse:     expected struct task_struct const *p
   kernel/sched/pelt.h:76:13: sparse:     got struct task_struct [noderef] 
__rcu *curr
   kernel/sched/core.c:2065:33: sparse: sparse: dereference of noderef 
expression
   kernel/sched/core.c:2066:19: sparse: sparse: dereference of noderef 
expression
   kernel/sched/core.c:2067:37: sparse: sparse: dereference of noderef 
expression
   kernel/sched/core.c: note: in included file:
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2169:9: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct *
   kernel/sched/core.c:2040:38: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/core.c:2040:38: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:2040:38: sparse:    struct task_struct const *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2169:9: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2169:9: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2169:9: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2169:9: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2011:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2169:9: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2169:9: sparse:    struct task_struct *

vim +213 kernel/ptrace.c

9899d11f654474 Oleg Nesterov      2013-01-21  207  
9899d11f654474 Oleg Nesterov      2013-01-21  208  static void 
ptrace_unfreeze_traced(struct task_struct *task)
9899d11f654474 Oleg Nesterov      2013-01-21  209  {
2f064a59a11ff9 Peter Zijlstra     2021-06-11  210       if 
(READ_ONCE(task->__state) != __TASK_TRACED)
9899d11f654474 Oleg Nesterov      2013-01-21  211               return;
9899d11f654474 Oleg Nesterov      2013-01-21  212  
9899d11f654474 Oleg Nesterov      2013-01-21 @213       WARN_ON(!task->ptrace 
|| task->parent != current);
9899d11f654474 Oleg Nesterov      2013-01-21  214  
5402e97af667e3 [email protected] 2017-04-07  215       /*
5402e97af667e3 [email protected] 2017-04-07  216        * PTRACE_LISTEN can 
allow ptrace_trap_notify to wake us up remotely.
5402e97af667e3 [email protected] 2017-04-07  217        * Recheck state under 
the lock to close this race.
5402e97af667e3 [email protected] 2017-04-07  218        */
9899d11f654474 Oleg Nesterov      2013-01-21  219       
spin_lock_irq(&task->sighand->siglock);
2f064a59a11ff9 Peter Zijlstra     2021-06-11  220       if 
(READ_ONCE(task->__state) == __TASK_TRACED) {
9899d11f654474 Oleg Nesterov      2013-01-21  221               if 
(__fatal_signal_pending(task))
9899d11f654474 Oleg Nesterov      2013-01-21  222                       
wake_up_state(task, __TASK_TRACED);
9899d11f654474 Oleg Nesterov      2013-01-21  223               else
2f064a59a11ff9 Peter Zijlstra     2021-06-11  224                       
WRITE_ONCE(task->__state, TASK_TRACED);
5402e97af667e3 [email protected] 2017-04-07  225       }
9899d11f654474 Oleg Nesterov      2013-01-21  226       
spin_unlock_irq(&task->sighand->siglock);
9899d11f654474 Oleg Nesterov      2013-01-21  227  }
9899d11f654474 Oleg Nesterov      2013-01-21  228  

:::::: The code at line 213 was first introduced by commit
:::::: 9899d11f654474d2d54ea52ceaa2a1f4db3abd68 ptrace: ensure 
arch_ptrace/ptrace_request can never race with SIGKILL

:::::: TO: Oleg Nesterov <[email protected]>
:::::: CC: Linus Torvalds <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to