[PATCH] ARM: Allow modules to read cpu_logical_map

Dave Martin dave.martin at linaro.org
Fri Feb 8 07:19:40 EST 2013


It is reasonable for loadable modules to be CPU topology aware
(particular examples include cpufreq and cpuidle drivers).

This patch exports a new function cpu_get_hwid(cpu) to provide
suitable read-only access outside vmlinux.

Signed-off-by: Dave Martin <dave.martin at linaro.org>
---
Modules using this function will be arch-dependent and highly coupled to
the kernel, so cpu_get_hwid() shouldn't be considered a stable API,
especially while the details of kernel topology awareness are still
under discussion: therefore, export only to GPL code for now.

 arch/arm/include/asm/smp_plat.h |    3 +++
 arch/arm/kernel/setup.c         |    7 +++++++
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/arm/include/asm/smp_plat.h b/arch/arm/include/asm/smp_plat.h
index aaa61b6..518e466 100644
--- a/arch/arm/include/asm/smp_plat.h
+++ b/arch/arm/include/asm/smp_plat.h
@@ -66,4 +66,7 @@ static inline int get_logical_index(u32 mpidr)
 	return -EINVAL;
 }
 
+/* Read-only accessor for use by modules: */
+int cpu_get_hwid(int cpu);
+
 #endif
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 3f6cbb2..1ac5e8b 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -429,6 +429,13 @@ void cpu_init(void)
 
 int __cpu_logical_map[NR_CPUS];
 
+/* Read-only accessor for use by modules: */
+int cpu_get_hwid(int cpu)
+{
+	return cpu_logical_map(cpu);
+}
+EXPORT_SYMBOL_GPL(cpu_get_hwid);
+
 void __init smp_setup_processor_id(void)
 {
 	int i;
-- 
1.7.4.1




More information about the linux-arm-kernel mailing list