diff options
-rw-r--r-- | arch/arm/include/asm/proc-fns.h | 4 | ||||
-rw-r--r-- | arch/arm/kernel/bugs.c | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-macros.S | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/include/asm/proc-fns.h b/arch/arm/include/asm/proc-fns.h index f2e1af45bd6f..e25f4392e1b2 100644 --- a/arch/arm/include/asm/proc-fns.h +++ b/arch/arm/include/asm/proc-fns.h | |||
@@ -37,6 +37,10 @@ extern struct processor { | |||
37 | */ | 37 | */ |
38 | void (*_proc_init)(void); | 38 | void (*_proc_init)(void); |
39 | /* | 39 | /* |
40 | * Check for processor bugs | ||
41 | */ | ||
42 | void (*check_bugs)(void); | ||
43 | /* | ||
40 | * Disable any processor specifics | 44 | * Disable any processor specifics |
41 | */ | 45 | */ |
42 | void (*_proc_fin)(void); | 46 | void (*_proc_fin)(void); |
diff --git a/arch/arm/kernel/bugs.c b/arch/arm/kernel/bugs.c index 16e7ba2a9cc4..7be511310191 100644 --- a/arch/arm/kernel/bugs.c +++ b/arch/arm/kernel/bugs.c | |||
@@ -5,6 +5,10 @@ | |||
5 | 5 | ||
6 | void check_other_bugs(void) | 6 | void check_other_bugs(void) |
7 | { | 7 | { |
8 | #ifdef MULTI_CPU | ||
9 | if (processor.check_bugs) | ||
10 | processor.check_bugs(); | ||
11 | #endif | ||
8 | } | 12 | } |
9 | 13 | ||
10 | void __init check_bugs(void) | 14 | void __init check_bugs(void) |
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S index f10e31d0730a..81d0efb055c6 100644 --- a/arch/arm/mm/proc-macros.S +++ b/arch/arm/mm/proc-macros.S | |||
@@ -273,13 +273,14 @@ | |||
273 | mcr p15, 0, ip, c7, c10, 4 @ data write barrier | 273 | mcr p15, 0, ip, c7, c10, 4 @ data write barrier |
274 | .endm | 274 | .endm |
275 | 275 | ||
276 | .macro define_processor_functions name:req, dabort:req, pabort:req, nommu=0, suspend=0 | 276 | .macro define_processor_functions name:req, dabort:req, pabort:req, nommu=0, suspend=0, bugs=0 |
277 | .type \name\()_processor_functions, #object | 277 | .type \name\()_processor_functions, #object |
278 | .align 2 | 278 | .align 2 |
279 | ENTRY(\name\()_processor_functions) | 279 | ENTRY(\name\()_processor_functions) |
280 | .word \dabort | 280 | .word \dabort |
281 | .word \pabort | 281 | .word \pabort |
282 | .word cpu_\name\()_proc_init | 282 | .word cpu_\name\()_proc_init |
283 | .word \bugs | ||
283 | .word cpu_\name\()_proc_fin | 284 | .word cpu_\name\()_proc_fin |
284 | .word cpu_\name\()_reset | 285 | .word cpu_\name\()_reset |
285 | .word cpu_\name\()_do_idle | 286 | .word cpu_\name\()_do_idle |