aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorJon Medhurst <tixy@linaro.org>2013-04-25 09:40:22 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-04-26 06:09:32 -0400
commit1783d4574619aea9ff5d94e6506f288547fc6737 (patch)
tree1612586354fd64fb3857c3f6157e95f86b72b954 /arch/arm/kernel
parent3eb0be304273054fd2ae34367f96127d082e310c (diff)
ARM: 7700/2: Make cpu_init() notrace
On resume from CPU power down any trace hooks enabled in cpu_init() will get called before that function has done set_my_cpu_offset(), so any use of per-cpu variables by trace hook code will cause bad things to happen. Prevent this by marking the function notrace. This fixes lockups/crashes seen when enabling function tracer on TC2 with the not yet mainlined cpuidle driver. Signed-off-by: Jon Medhurst <tixy@linaro.org> Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/setup.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 234e339196c0..63ae04bdda1b 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -389,7 +389,7 @@ static void __init feat_v6_fixup(void)
389 * 389 *
390 * cpu_init sets up the per-CPU stacks. 390 * cpu_init sets up the per-CPU stacks.
391 */ 391 */
392void cpu_init(void) 392void notrace cpu_init(void)
393{ 393{
394 unsigned int cpu = smp_processor_id(); 394 unsigned int cpu = smp_processor_id();
395 struct stack *stk = &stacks[cpu]; 395 struct stack *stk = &stacks[cpu];