Re: [PATCH v2] prctl: PR_SET_MM - unify copying of user's auvx

From: Cyrill Gorcunov
Date: Wed Sep 29 2021 - 11:35:02 EST


On Wed, Sep 29, 2021 at 11:20:23PM +0800, kernel test robot wrote:
...
> sparse warnings: (new ones prefixed by >>)
> >> kernel/sys.c:1997:58: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void const [noderef] __user *addr @@ got unsigned long long [usertype] *[addressable] auxv @@
> kernel/sys.c:1997:58: sparse: expected void const [noderef] __user *addr
> kernel/sys.c:1997:58: sparse: got unsigned long long [usertype] *[addressable] auxv
> kernel/sys.c:1068:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p1 @@ got struct task_struct [noderef] __rcu *real_parent @@
> kernel/sys.c:1068:32: sparse: expected struct task_struct *p1
> kernel/sys.c:1068:32: sparse: got struct task_struct [noderef] __rcu *real_parent
> kernel/sys.c: note: in included file (through include/linux/rcuwait.h, include/linux/percpu-rwsem.h, include/linux/fs.h, ...):
> include/linux/sched/signal.h:710: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:710:37: sparse: expected struct spinlock [usertype] *lock
> include/linux/sched/signal.h:710:37: sparse: got struct spinlock [noderef] __rcu *
>
> vim +1997 kernel/sys.c

Thanks for report! I happen to miss Dima's reply in first place as well :(
I'll take a look on this patch. The issie itself is implicit type conversion,
shouldn't be a bug in general but need to address as well. Will do.