[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190423150814.4lhcavywthyiwipd@linutronix.de>
Date: Tue, 23 Apr 2019 17:08:14 +0200
From: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
To: "Paul E. McKenney" <paulmck@...ux.ibm.com>,
Thomas Gleixner <tglx@...utronix.de>
Cc: kbuild test robot <lkp@...el.com>, kbuild-all@...org,
linux-kernel@...r.kernel.org
Subject: Re: [rcu:dev.2019.04.16a 38/72] kernel/rcu/tree.c:2408:36: sparse:
sparse: incorrect type in initializer (different address spaces)
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@...el.com>
> >
> >
> >
> > 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…
> Thanx, Paul
Sebastian
Powered by blists - more mailing lists