diff options
| author | Dave Martin <dave.martin@linaro.org> | 2011-08-19 17:58:35 +0100 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-10-17 09:12:40 +0100 | 
| commit | 2ecccf90f2a6d821af4d33f086d59895e5d3bedc (patch) | |
| tree | d12438e595a0cfa5051187f69a1badddb1b317b3 /arch/arm/kernel | |
| parent | 40c6d8aee40e373db75e6b0b4230fc8e8259d7a6 (diff) | |
| download | olio-linux-3.10-2ecccf90f2a6d821af4d33f086d59895e5d3bedc.tar.xz olio-linux-3.10-2ecccf90f2a6d821af4d33f086d59895e5d3bedc.zip  | |
ARM: 7029/1: Make cpu_architecture into a global variable
The CPU architecture really should not be changing at runtime, so
make it a global variable instead of a function.
The cpu_architecture() function declared in <asm/system.h> remains
the correct way to read this variable from C code.
Signed-off-by: Dave Martin <dave.martin@linaro.org>
Reviewed-by: Jon Medhurst <tixy@yxit.co.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
| -rw-r--r-- | arch/arm/kernel/setup.c | 20 | 
1 files changed, 19 insertions, 1 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index e514c76043b..10fce616e99 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -29,6 +29,8 @@  #include <linux/fs.h>  #include <linux/proc_fs.h>  #include <linux/memblock.h> +#include <linux/bug.h> +#include <linux/compiler.h>  #include <asm/unified.h>  #include <asm/cpu.h> @@ -42,6 +44,7 @@  #include <asm/cacheflush.h>  #include <asm/cachetype.h>  #include <asm/tlbflush.h> +#include <asm/system.h>  #include <asm/prom.h>  #include <asm/mach/arch.h> @@ -115,6 +118,13 @@ struct outer_cache_fns outer_cache __read_mostly;  EXPORT_SYMBOL(outer_cache);  #endif +/* + * Cached cpu_architecture() result for use by assembler code. + * C code should use the cpu_architecture() function instead of accessing this + * variable directly. + */ +int __cpu_architecture __read_mostly = CPU_ARCH_UNKNOWN; +  struct stack {  	u32 irq[3];  	u32 abt[3]; @@ -210,7 +220,7 @@ static const char *proc_arch[] = {  	"?(17)",  }; -int cpu_architecture(void) +static int __get_cpu_architecture(void)  {  	int cpu_arch; @@ -243,6 +253,13 @@ int cpu_architecture(void)  	return cpu_arch;  } +int __pure cpu_architecture(void) +{ +	BUG_ON(__cpu_architecture == CPU_ARCH_UNKNOWN); + +	return __cpu_architecture; +} +  static int cpu_has_aliasing_icache(unsigned int arch)  {  	int aliasing_icache; @@ -414,6 +431,7 @@ static void __init setup_processor(void)  	}  	cpu_name = list->cpu_name; +	__cpu_architecture = __get_cpu_architecture();  #ifdef MULTI_CPU  	processor = *list->proc;  |