Re: [rcu:dev.2019.04.16a 38/72] kernel/rcu/tree.c:2408:36: sparse: sparse: incorrect type in initializer (different address spaces)

From: Paul E. McKenney
Date: Tue Apr 23 2019 - 12:38:24 EST


On Tue, Apr 23, 2019 at 05:08:14PM +0200, Sebastian Andrzej Siewior wrote:
> On 2019-04-23 05:46:19 [-0700], Paul E. McKenney wrote:
> > On Tue, Apr 23, 2019 at 06:33:33PM +0800, kbuild test robot wrote:
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2019.04.16a
> > > head: ca8714f549be5a186d086a223184095759eb7094
> > > commit: 9a1a31194644dfc6b8f19755ea44ecf84f37cf40 [38/72] rcu: Enable elimination of Tree-RCU softirq processing
> > > reproduce:
> > > # apt-get install sparse
> > > git checkout 9a1a31194644dfc6b8f19755ea44ecf84f37cf40
> > > 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@xxxxxxxxx>
> > >
> > >
> > >
> > > sparse warnings: (new ones prefixed by >>)
> > >
> > > >> kernel/rcu/tree.c:2408:36: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct [noderef] <asn:3> **store @@ got struct task_struct [noderef] <asn:3> **store @@
> >
> > Line 2408 of kernel/rcu/tree.c for commit 9a1a31194644 ("rcu: Enable
> > elimination of Tree-RCU softirq processing") is this:
> >
> > .store = &rcu_data.rcu_cpu_kthread_task,
> >
> > So I am having some difficulty understanding this sparse diagnostic.
> >
> > Help?
>
> this helps
>
> diff --git a/include/linux/smpboot.h b/include/linux/smpboot.h
> index d0884b5250010..c2678e29807c1 100644
> --- a/include/linux/smpboot.h
> +++ b/include/linux/smpboot.h
> @@ -29,7 +29,7 @@ struct smpboot_thread_data;
> * @thread_comm: The base name of the thread
> */
> struct smp_hotplug_thread {
> - struct task_struct __percpu **store;
> + struct task_struct *__percpu *store;
> struct list_head list;
> int (*thread_should_run)(unsigned int cpu);
> void (*thread_fn)(unsigned int cpu);
>
>
> I just need to find the correct words for it.
> And yes, it is not RCU relatedâ

Ah, thank you! Shall I fold the above patch into your existing one,
or are you looking to do something else here?

Thanx, Paul