1 From 7844d78ad19420833c68be340ce5c2e75cd599c1 Mon Sep 17 00:00:00 2001
2 From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
3 Date: Fri, 18 Jan 2019 15:49:36 +0100
4 Subject: sched/topology: Fix percpu data types in struct sd_data & struct
7 [ Upstream commit 99687cdbb3f6c8e32bcc7f37496e811f30460e48 ]
9 The percpu members of struct sd_data and s_data are declared as:
11 struct ... ** __percpu member;
15 __percpu pointer to pointer to struct ...
17 But looking at how they're used, their type should be:
19 pointer to __percpu pointer to struct ...
21 and they should thus be declared as:
23 struct ... * __percpu *member;
25 So fix the placement of '__percpu' in the definition of these
28 This addresses a bunch of Sparse's warnings like:
30 warning: incorrect type in initializer (different address spaces)
31 expected void const [noderef] <asn:3> *__vpp_verify
32 got struct sched_domain **
34 Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
35 Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
36 Cc: Linus Torvalds <torvalds@linux-foundation.org>
37 Cc: Peter Zijlstra <peterz@infradead.org>
38 Cc: Thomas Gleixner <tglx@linutronix.de>
39 Link: https://lkml.kernel.org/r/20190118144936.79158-1-luc.vanoostenryck@gmail.com
40 Signed-off-by: Ingo Molnar <mingo@kernel.org>
41 Signed-off-by: Sasha Levin <sashal@kernel.org>
43 include/linux/sched/topology.h | 8 ++++----
44 kernel/sched/topology.c | 2 +-
45 2 files changed, 5 insertions(+), 5 deletions(-)
47 diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h
48 index cf257c2e728d..5a92baa91e0c 100644
49 --- a/include/linux/sched/topology.h
50 +++ b/include/linux/sched/topology.h
51 @@ -177,10 +177,10 @@ typedef int (*sched_domain_flags_f)(void);
52 #define SDTL_OVERLAP 0x01
55 - struct sched_domain **__percpu sd;
56 - struct sched_domain_shared **__percpu sds;
57 - struct sched_group **__percpu sg;
58 - struct sched_group_capacity **__percpu sgc;
59 + struct sched_domain *__percpu *sd;
60 + struct sched_domain_shared *__percpu *sds;
61 + struct sched_group *__percpu *sg;
62 + struct sched_group_capacity *__percpu *sgc;
65 struct sched_domain_topology_level {
66 diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
67 index 659e075ef70b..9dcd80ed9d4c 100644
68 --- a/kernel/sched/topology.c
69 +++ b/kernel/sched/topology.c
70 @@ -499,7 +499,7 @@ static int __init isolated_cpu_setup(char *str)
71 __setup("isolcpus=", isolated_cpu_setup);
74 - struct sched_domain ** __percpu sd;
75 + struct sched_domain * __percpu *sd;
76 struct root_domain *rd;