Re: [tip:timers/core 2/31] kernel/time/posix-cpu-timers.c:1307:9: sparse: sparse: incorrect type in argument 1 (different address spaces)
From: Oleg Nesterov
Date: Wed Jul 08 2026 - 11:46:34 EST
On 07/08, kernel test robot wrote:
>
> sparse warnings: (new ones prefixed by >>)
> >> kernel/time/posix-cpu-timers.c:1307:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
> kernel/time/posix-cpu-timers.c:1307:9: sparse: expected struct spinlock [usertype] *lock
> kernel/time/posix-cpu-timers.c:1307:9: sparse: got struct spinlock [noderef] __rcu *
> kernel/time/posix-cpu-timers.c:1367:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
> kernel/time/posix-cpu-timers.c:1367:36: sparse: expected struct spinlock [usertype] *lock
> kernel/time/posix-cpu-timers.c:1367:36: sparse: got struct spinlock [noderef] __rcu *
> kernel/time/posix-cpu-timers.c: note: in included file:
> include/linux/sched/signal.h:749: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:749:37: sparse: expected struct spinlock [usertype] *lock
> include/linux/sched/signal.h:749:37: sparse: got struct spinlock [noderef] __rcu *
> include/linux/sched/signal.h:749: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:749:37: sparse: expected struct spinlock [usertype] *lock
> include/linux/sched/signal.h:749:37: sparse: got struct spinlock [noderef] __rcu *
> include/linux/sched/signal.h:749: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:749:37: sparse: expected struct spinlock [usertype] *lock
> include/linux/sched/signal.h:749:37: sparse: got struct spinlock [noderef] __rcu *
> include/linux/sched/signal.h:749: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:749:37: sparse: expected struct spinlock [usertype] *lock
> include/linux/sched/signal.h:749:37: sparse: got struct spinlock [noderef] __rcu *
> include/linux/sched/signal.h:749: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:749:37: sparse: expected struct spinlock [usertype] *lock
> include/linux/sched/signal.h:749:37: sparse: got struct spinlock [noderef] __rcu *
IMO, we should remove this __rcu annotation, it doesn't really help.
Oleg.