aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-08-27 07:26:34 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-09-20 09:58:35 -0400
commitb36e4758dc1b9ff1f6d97e951edba22366230d11 (patch)
tree3419ae3d588bdc1ecc51748c63077cb18ac974c3 /kernel/fork.c
parent7ad1bcb25c5623f1f87c50fdf2272f58ff91db5a (diff)
[ARM] Fix kernel/fork.c for lockdep on ARM
ARM has interrupts enabled over context switches (iow, has __ARCH_WANT_INTERRUPTS_ON_CTXSW defined.) The lockdep code in fork.c assumes that interrupts are always disabled. Fix this wrong assumption by making the initialisation of 'p->hardirqs_enabled' depend on __ARCH_WANT_INTERRUPTS_ON_CTXSW. Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index f9b014e3e70..8f76adf1c6a 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1056,7 +1056,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1056#endif 1056#endif
1057#ifdef CONFIG_TRACE_IRQFLAGS 1057#ifdef CONFIG_TRACE_IRQFLAGS
1058 p->irq_events = 0; 1058 p->irq_events = 0;
1059#ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW
1060 p->hardirqs_enabled = 1;
1061#else
1059 p->hardirqs_enabled = 0; 1062 p->hardirqs_enabled = 0;
1063#endif
1060 p->hardirq_enable_ip = 0; 1064 p->hardirq_enable_ip = 0;
1061 p->hardirq_enable_event = 0; 1065 p->hardirq_enable_event = 0;
1062 p->hardirq_disable_ip = _THIS_IP_; 1066 p->hardirq_disable_ip = _THIS_IP_;