]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.14.111/sched-topology-fix-percpu-data-types-in-struct-sd_da.patch
Linux 4.9.168
[thirdparty/kernel/stable-queue.git] / releases / 4.14.111 / sched-topology-fix-percpu-data-types-in-struct-sd_da.patch
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
5 s_data
6
7 [ Upstream commit 99687cdbb3f6c8e32bcc7f37496e811f30460e48 ]
8
9 The percpu members of struct sd_data and s_data are declared as:
10
11 struct ... ** __percpu member;
12
13 So their type is:
14
15 __percpu pointer to pointer to struct ...
16
17 But looking at how they're used, their type should be:
18
19 pointer to __percpu pointer to struct ...
20
21 and they should thus be declared as:
22
23 struct ... * __percpu *member;
24
25 So fix the placement of '__percpu' in the definition of these
26 structures.
27
28 This addresses a bunch of Sparse's warnings like:
29
30 warning: incorrect type in initializer (different address spaces)
31 expected void const [noderef] <asn:3> *__vpp_verify
32 got struct sched_domain **
33
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>
42 ---
43 include/linux/sched/topology.h | 8 ++++----
44 kernel/sched/topology.c | 2 +-
45 2 files changed, 5 insertions(+), 5 deletions(-)
46
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
53
54 struct sd_data {
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;
63 };
64
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);
72
73 struct s_data {
74 - struct sched_domain ** __percpu sd;
75 + struct sched_domain * __percpu *sd;
76 struct root_domain *rd;
77 };
78
79 --
80 2.19.1
81