* [melver:cap-analysis/dev 8/33] kernel/ptrace.c:380:30: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2025-08-02 18:58 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-08-02 18:58 UTC (permalink / raw)
To: elver; +Cc: oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git cap-analysis/dev
head: fdd3a307f8bbbf8727a633b44c3d6a31103e1938
commit: 19b8502cf404e369c1dac8db67ced1f1763262df [8/33] locking/rwlock, spinlock: Support Clang's capability analysis
config: csky-randconfig-r111-20250802 (https://download.01.org/0day-ci/archive/20250803/202508030257.JGIavAFP-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 12.5.0
reproduce: (https://download.01.org/0day-ci/archive/20250803/202508030257.JGIavAFP-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508030257.JGIavAFP-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/ptrace.c:55:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/ptrace.c:55:22: sparse: struct task_struct *
kernel/ptrace.c:55:22: sparse: struct task_struct [noderef] __rcu *
kernel/ptrace.c:74: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:74:23: sparse: expected struct task_struct [noderef] __rcu *parent
kernel/ptrace.c:74:23: sparse: got struct task_struct *new_parent
kernel/ptrace.c:75: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:75:29: sparse: expected struct cred const [noderef] __rcu *ptracer_cred
kernel/ptrace.c:75:29: sparse: got struct cred const *
kernel/ptrace.c:129: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:129:18: sparse: expected struct cred const *old_cred
kernel/ptrace.c:129:18: sparse: got struct cred const [noderef] __rcu *ptracer_cred
kernel/ptrace.c:133:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:133:25: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:133:25: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:160:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:160:27: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:160:27: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:192:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:192:28: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:192:28: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:198:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:198:30: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:198:30: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:251:44: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/ptrace.c:251:44: sparse: struct task_struct [noderef] __rcu *
kernel/ptrace.c:251:44: sparse: struct task_struct *
kernel/ptrace.c:494: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:494:54: sparse: expected struct task_struct *parent
kernel/ptrace.c:494:54: sparse: got struct task_struct [noderef] __rcu *parent
kernel/ptrace.c:502: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:502:53: sparse: expected struct task_struct *new_parent
kernel/ptrace.c:502:53: sparse: got struct task_struct [noderef] __rcu *real_parent
kernel/ptrace.c:550: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:550:41: sparse: expected struct task_struct *p1
kernel/ptrace.c:550:41: sparse: got struct task_struct [noderef] __rcu *real_parent
kernel/ptrace.c:552: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:552:50: sparse: expected struct sighand_struct *sigh
kernel/ptrace.c:552:50: sparse: got struct sighand_struct [noderef] __rcu *sighand
kernel/ptrace.c:743:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:743:37: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:743:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:751:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:751:39: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:751:39: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:862:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:862:29: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:862:29: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:866:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:866:31: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:866:31: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:1221:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:1221:37: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:1221:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:1223:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:1223:39: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:1223:39: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c: note: in included file (through include/linux/rcuwait.h, include/linux/mm.h):
include/linux/sched/signal.h:752: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:752:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:752:37: sparse: got struct spinlock [noderef] __rcu *
>> kernel/ptrace.c:380:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *_T @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:380:30: sparse: expected struct spinlock [usertype] *_T
kernel/ptrace.c:380:30: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:409:12: sparse: sparse: context imbalance in 'ptrace_attach' - different lock contexts for basic block
kernel/ptrace.c:500:38: sparse: sparse: dereference of noderef expression
include/linux/sched/signal.h:752: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:752:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:752:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:690:9: sparse: sparse: context imbalance in 'ptrace_getsiginfo' - different lock contexts for basic block
include/linux/sched/signal.h:752: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:752:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:752:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:706:9: sparse: sparse: context imbalance in 'ptrace_setsiginfo' - different lock contexts for basic block
kernel/ptrace.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h):
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
kernel/ptrace.c: note: in included file (through include/linux/rcuwait.h, include/linux/mm.h):
include/linux/sched/signal.h:752: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:752:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:752:37: sparse: got struct spinlock [noderef] __rcu *
include/linux/sched/signal.h:752: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:752:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:752:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h):
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
kernel/ptrace.c:1384:9: sparse: sparse: context imbalance in 'ptrace_request' - different lock contexts for basic block
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
vim +380 kernel/ptrace.c
ee1fee900537b5 Jann Horn 2022-03-19 377
08701813a1b439 Oleg Nesterov 2024-01-22 378 static inline void ptrace_set_stopped(struct task_struct *task, bool seize)
5431fdd2c181dd Peter Zijlstra 2023-09-17 379 {
5431fdd2c181dd Peter Zijlstra 2023-09-17 @380 guard(spinlock)(&task->sighand->siglock);
5431fdd2c181dd Peter Zijlstra 2023-09-17 381
08701813a1b439 Oleg Nesterov 2024-01-22 382 /* SEIZE doesn't trap tracee on attach */
08701813a1b439 Oleg Nesterov 2024-01-22 383 if (!seize)
08701813a1b439 Oleg Nesterov 2024-01-22 384 send_signal_locked(SIGSTOP, SEND_SIG_PRIV, task, PIDTYPE_PID);
5431fdd2c181dd Peter Zijlstra 2023-09-17 385 /*
5431fdd2c181dd Peter Zijlstra 2023-09-17 386 * If the task is already STOPPED, set JOBCTL_TRAP_STOP and
5431fdd2c181dd Peter Zijlstra 2023-09-17 387 * TRAPPING, and kick it so that it transits to TRACED. TRAPPING
5431fdd2c181dd Peter Zijlstra 2023-09-17 388 * will be cleared if the child completes the transition or any
5431fdd2c181dd Peter Zijlstra 2023-09-17 389 * event which clears the group stop states happens. We'll wait
5431fdd2c181dd Peter Zijlstra 2023-09-17 390 * for the transition to complete before returning from this
5431fdd2c181dd Peter Zijlstra 2023-09-17 391 * function.
5431fdd2c181dd Peter Zijlstra 2023-09-17 392 *
5431fdd2c181dd Peter Zijlstra 2023-09-17 393 * This hides STOPPED -> RUNNING -> TRACED transition from the
5431fdd2c181dd Peter Zijlstra 2023-09-17 394 * attaching thread but a different thread in the same group can
5431fdd2c181dd Peter Zijlstra 2023-09-17 395 * still observe the transient RUNNING state. IOW, if another
5431fdd2c181dd Peter Zijlstra 2023-09-17 396 * thread's WNOHANG wait(2) on the stopped tracee races against
5431fdd2c181dd Peter Zijlstra 2023-09-17 397 * ATTACH, the wait(2) may fail due to the transient RUNNING.
5431fdd2c181dd Peter Zijlstra 2023-09-17 398 *
5431fdd2c181dd Peter Zijlstra 2023-09-17 399 * The following task_is_stopped() test is safe as both transitions
5431fdd2c181dd Peter Zijlstra 2023-09-17 400 * in and out of STOPPED are protected by siglock.
5431fdd2c181dd Peter Zijlstra 2023-09-17 401 */
5431fdd2c181dd Peter Zijlstra 2023-09-17 402 if (task_is_stopped(task) &&
5431fdd2c181dd Peter Zijlstra 2023-09-17 403 task_set_jobctl_pending(task, JOBCTL_TRAP_STOP | JOBCTL_TRAPPING)) {
5431fdd2c181dd Peter Zijlstra 2023-09-17 404 task->jobctl &= ~JOBCTL_STOPPED;
5431fdd2c181dd Peter Zijlstra 2023-09-17 405 signal_wake_up_state(task, __TASK_STOPPED);
5431fdd2c181dd Peter Zijlstra 2023-09-17 406 }
5431fdd2c181dd Peter Zijlstra 2023-09-17 407 }
5431fdd2c181dd Peter Zijlstra 2023-09-17 408
:::::: The code at line 380 was first introduced by commit
:::::: 5431fdd2c181dd2eac218e45b44deb2925fa48f0 ptrace: Convert ptrace_attach() to use lock guards
:::::: TO: Peter Zijlstra <peterz@infradead.org>
:::::: CC: Peter Zijlstra <peterz@infradead.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-08-02 18:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-02 18:58 [melver:cap-analysis/dev 8/33] kernel/ptrace.c:380:30: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.