| From 9d7376cb36ba2f9993008a7b62357baa86d51942 Mon Sep 17 00:00:00 2001 |
| From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| Date: Wed, 24 Apr 2019 10:52:53 +0200 |
| Subject: smpboot: Place the __percpu annotation correctly |
| |
| [ Upstream commit d4645d30b50d1691c26ff0f8fa4e718b08f8d3bb ] |
| |
| The test robot reported a wrong assignment of a per-CPU variable which |
| it detected by using sparse and sent a report. The assignment itself is |
| correct. The annotation for sparse was wrong and hence the report. |
| The first pointer is a "normal" pointer and points to the per-CPU memory |
| area. That means that the __percpu annotation has to be moved. |
| |
| Move the __percpu annotation to pointer which points to the per-CPU |
| area. This change affects only the sparse tool (and is ignored by the |
| compiler). |
| |
| Reported-by: kbuild test robot <lkp@intel.com> |
| Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Paul E. McKenney <paulmck@linux.ibm.com> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Fixes: f97f8f06a49fe ("smpboot: Provide infrastructure for percpu hotplug threads") |
| Link: http://lkml.kernel.org/r/20190424085253.12178-1-bigeasy@linutronix.de |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| include/linux/smpboot.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/include/linux/smpboot.h b/include/linux/smpboot.h |
| index d0884b5250010..9d1bc65d226cc 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); |
| -- |
| 2.20.1 |
| |