From 5ebd0d72e36041809c718c043079ec2356fa029e Mon Sep 17 00:00:00 2001 From: Colin Ian King Date: Thu, 30 Nov 2017 14:58:13 +0000 Subject: [PATCH] UBUNTU: SAUCE: s390/topology: don't inline cpu_to_node Inlining cpu_to_node ends up with the GPL exported array cpu_topology being pulled into all sources that call cpu_to_node and indirectly makes cpu_to_node into a function that has the same GPL exported constraints. This is unlike any other architecture where cpu_to_node does not have this constraint. Fix this by making cpu_to_node a macro that calls a non-inlined __cpu_to_node helper function that performs the same as the original cpu_to_node. Signed-off-by: Colin Ian King Signed-off-by: Seth Forshee --- arch/s390/include/asm/topology.h | 7 ++----- arch/s390/kernel/topology.c | 7 +++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/arch/s390/include/asm/topology.h b/arch/s390/include/asm/topology.h index cca406fdbe51..e0bce245f1e7 100644 --- a/arch/s390/include/asm/topology.h +++ b/arch/s390/include/asm/topology.h @@ -68,11 +68,8 @@ static inline void topology_expect_change(void) { } #ifdef CONFIG_NUMA -#define cpu_to_node cpu_to_node -static inline int cpu_to_node(int cpu) -{ - return cpu_topology[cpu].node_id; -} +extern int __cpu_to_node(int cpu); +#define cpu_to_node __cpu_to_node /* Returns a pointer to the cpumask of CPUs on node 'node'. */ #define cpumask_of_node cpumask_of_node diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 2db6fb405a9a..571bafd93c8f 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c @@ -65,6 +65,13 @@ EXPORT_SYMBOL_GPL(cpu_topology); cpumask_t cpus_with_topology; +int __cpu_to_node(int cpu) +{ + return cpu_topology[cpu].node_id; +} + +EXPORT_SYMBOL(__cpu_to_node); + static cpumask_t cpu_group_map(struct mask_info *info, unsigned int cpu) { cpumask_t mask; -- 2.39.5